2

似乎 Ember 中“MVC”的实现与我已经习惯的实现略有不同。感觉好像 Ember 中的流程鼓励将业务逻辑放在控制器中。这是意图,还是仅仅是许多过时或速记示例、教程和小提琴的混淆结果?

PS:这些“过时或速记”的例子在他们的时代都是无价之宝,我完全感谢他们的作者的努力:)

4

1 回答 1

4

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 页面上的核心概念控制器简介以获取更多信息。

于 2013-05-30T08:37:20.420 回答