Ember中的脂肪模型或控制器

时间:2013-05-30 05:59:02

标签: javascript model-view-controller ember.js

似乎Ember中'MVC'的实现与我习以为常的略有不同。感觉好像Ember中的流程鼓励将业务逻辑放在控制器中。这是许多过时的或简短的示例,教程和小提琴的意图,还是简单的结果?

PS:这些“过时或简写”的例子在他们的时代都是非常宝贵的,我完全赞赏他们作者的努力:)

1 个答案:

答案 0 :(得分: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

Ember Architecture

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控制器更像是服务器端控制器。

有关详情,请查看帖子页面上的Core ConceptsIntroduction to Controllers