似乎 Ember 中“MVC”的实现与我已经习惯的实现略有不同。感觉好像 Ember 中的流程鼓励将业务逻辑放在控制器中。这是意图,还是仅仅是许多过时或速记示例、教程和小提琴的混淆结果?
PS:这些“过时或速记”的例子在他们的时代都是无价之宝,我完全感谢他们的作者的努力:)
似乎 Ember 中“MVC”的实现与我已经习惯的实现略有不同。感觉好像 Ember 中的流程鼓励将业务逻辑放在控制器中。这是意图,还是仅仅是许多过时或速记示例、教程和小提琴的混淆结果?
PS:这些“过时或速记”的例子在他们的时代都是无价之宝,我完全感谢他们的作者的努力:)
Ember 的 MVC 架构无法直接与典型的 Web 应用程序相比。主要区别在于服务器 MVC 架构只真正处理请求范围,而 ember 应用程序没有请求的概念。整个应用程序可用,或根本不可用。
服务器端代码主要执行模型操作和通知,因此拥有胖模型/瘦控制器是有意义的。控制器本质上是模型的路由器。
如果您将 Ember 的控制器视为模型代理,则使控制器变胖更有意义。所有的逻辑都委托给控制器,模型实际上只是为对象服务。这是一个简化的布局。
服务器端架构
View - Displays information
Controller - Delegates request to relevant model,
calls the appropriate view with relevant (manipulated) data
Model - (Fat) Most of the application's thinking happens here,
calls the database for records
(database) - Serves records as requested
余烬架构
Router - Sets up which template/view/controller to use for the page
Template/View - Displays information from the controller
Controller - All interactive logic goes here,
interacts with model for records
Model - Record store which calls server side api for additional records
可以看到,ember 模型应该更像是服务端的数据库功能,而 ember 控制器更像是服务端的控制器。
查看ember 页面上的核心概念和控制器简介以获取更多信息。