似乎Ember中'MVC'的实现与我习以为常的略有不同。感觉好像Ember中的流程鼓励将业务逻辑放在控制器中。这是许多过时的或简短的示例,教程和小提琴的意图,还是简单的结果?
PS:这些“过时或简写”的例子在他们的时代都是非常宝贵的,我完全赞赏他们作者的努力:)答案 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 Concepts和Introduction to Controllers。