Ember控制器与Ember ArrayController

时间:2015-06-10 07:17:05

标签: javascript ember.js

关于何时使用Ember.Controller以及何时使用Ember.ArrayController及其用途,我没有明显的区别。

1 个答案:

答案 0 :(得分:5)

使用控制器,您可以在模板中执行{{#each item in model}}

使用ArrayController,您只需执行{{#each item}}

能。不推荐使用ArrayController,因为它模糊了逻辑,你永远不应该使用它。 Controller也被弃用,转而使用Ember 2.1或2.2中的可路由组件。

目前的策略如下:

  • 忘记ArrayController,ObjectController和View。
  • 为所有内容使用组件。
  • 在Ember 2.1 / 2.2之前,您无法将组件用于任何路由的根模板。对于该模板,您必须使用控制器。
  • 不要将任何逻辑放入该控制器。只需将组件放在其模板中并通过模型即可。仅将此类控制器用于查询参数和组件无法使用的其他内容。
  • 在路线中,请勿使用setupController。相反,将所有内容放入模型中,将其转换为模型的哈希值。 RSVP.hash是你的朋友。
  • 当可路由组件可用时,将控制器替换为组件。

PS each的语法正在更改为{{#each model as |item|}}