【问题标题】:Fat Models or Controllers in EmberEmber 中的胖模型或控制器
【发布时间】:2013-05-30 05:59:02
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    Ember 的 MVC 架构无法直接与典型的 Web 应用程序相比。主要区别在于服务器 MVC 架构只真正处理请求范围,而 ember 应用程序没有请求的概念。整个应用程序可用,或根本不可用。

    服务器端代码主要执行模型操作和通知,因此拥有胖模型/瘦控制器是有意义的。控制器本质上是模型的路由器。

    如果您将 Ember 的控制器视为 model-proxy,那么让控制器变胖更有意义。所有的逻辑都委托给控制器,而模型实际上只是为对象提供服务。这是一个简化的布局。

    服务器端架构

    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 架构

    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 页面上的 Core ConceptsIntroduction to Controllers 了解更多信息。

    【讨论】:

    • 太棒了!这就是我所希望的答案,并且得到了很好的解释。干杯!
    猜你喜欢
    • 2015-04-24
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多