【发布时间】:2013-08-28 09:16:28
【问题描述】:
我正在设计一个涉及编辑基于文本的文件的 JavaScript 应用程序(又名代码编辑器)。目前,我正在研究应用程序的文件资源管理器区域。我把它分成了三个 MVC 部分。
视图,它管理 DOM 结构(主要通过 jQuery)并将用户交互发布到我的应用程序中介。 (例如,用户点击“添加文件”,视图会询问名称,然后使用新名称触发“files.new”事件。)
控制器。控制器将接收视图触发的大部分事件。据我了解,控制器应该负责更新模型。例如,如果视图使用新名称触发“files.nameChanged”事件,控制器将通过更新模型来处理该事件。
模型。目前,该模型仅限于原始数据。没有事件或任何类型的 api。这让我想到了我的问题:
模型应该如何沟通?我考虑过公开一个 API,例如 model.updateRecord()。但是如果我这样做,视图如何传达应该更新哪个记录?例如,如果用户更改了文件的名称,控制器如何知道哪个文件被更改,以及如何将其传达给模型?
【问题讨论】:
-
听起来你像很多人一样错过了模型的一点 - 模型是一个抽象概念 MVC 中没有模型,但有服务,所以你需要某种DataMapper
-
@DaveJust 对我来说听起来不错,但问题仍然在于......“数据模块?”应该与应用程序的其余部分进行通信,或者更具体地说,与视图模块进行通信。
标签: javascript model-view-controller