控制器在ember.js中的作用是什么

时间:2012-12-27 15:41:14

标签: ember.js

过去几个月我一直在玩ember.js,最后总是问“控制器扮演什么角色”,因为当我完成时它通常看起来像这样

App.Controller = Ember.Controller.extend({
  content: null
});

如果我有任何基本的验证要求,我倾向于在视图中执行这些操作。

如果我需要填充控制器内容,我会在路由器中执行此操作(尽管我更倾向于减少此对象在当前版本的ember中的责任#)。

我的模型通过ember-data使用单独的适配器持久化,并在需要时使用某些域逻辑,如行为。

我在我构建的每个应用程序中留下的是一个如上所示的瘦(非常逻辑少)控制器。我发现这是一个对项目进行排序/分页/搜索/过滤/等的好地方,但是这个控制器对象应该在一个设计良好的ember.js应用程序中负责什么?

1 个答案:

答案 0 :(得分:3)

正如你所说,排序/分页/搜索/过滤(BTW大部分是由Ember.ArrayController支持)

我认为其他东西可能是围绕内容(模型)的计算属性,然后视图依赖于那些计算属性而不是单独完成工作。

也许它可能是一个跟踪和持久化视图状态(例如折叠/展开)的好地方,它不能在视图中保留,因为它每次都被销毁/创建。