我应该在视图中引用controller.model或controller.content吗?

时间:2013-03-08 12:50:34

标签: javascript ember.js handlebars.js

如果我有一个产品型号,在我看来我循环它们以下两个都是有效的。

我应该使用哪一个? 两者都有原因吗?

我更喜欢controller.model,似乎更明确。

{{#each product in controller.model}}
    <div>{{product.artist}}</div>
{{/each}}


{{#each product in controller.content}}
    <div>{{product.artist}}</div>
{{/each}}

2 个答案:

答案 0 :(得分:2)

  

我应该使用哪一个?

实际上两者都没有。相反,你应该绑定到控制器本身,如下所示:

{{#each product in controller}}
  <div>{{product.artist}}</div>
{{/each}}

虽然controller.contentcontroller.model一开始似乎有用,但您会发现这种方法会破坏更高级的用例,例如排序和指定itemController。

  

两者都有原因吗?

AFAIK使用controller.contentcontroller.model之间没有区别。 model属性实际上是content属性的别名。

// Ember controller definition:
model: Em.computed.alias('content')

答案 1 :(得分:0)

来自ember源代码似乎modelcontent的别名:

Ember.ControllerMixin = Ember.Mixin.create({
    ...
    model: Ember.computed.alias('content'),
    ...
});