我已成功实现了一个ArrayController,为它定义了一个ItemController,如下所示:
export default Ember.ArrayController.extend(InboxTab, {
itemController: 'messages.message-list-item'
});
然后在阵列控制器的模板中我只做
{{#each}}
<li {{action 'someActionFromItemController'}}>{{someComputedPropertyFromItemController}}</li>
{{/each}}
这很好用,我可以处理很多动作并计算每个项目,但是我遇到了将视图与每个项目相关联的困难。文档没有帮助。 itemView的唯一实例在本文中: http://emberjs.com/api/classes/Ember.CollectionView.html#sts=Specifying itemViewClass
这里的例子似乎围绕着向模板添加视图并从那里指定内容,我不确定这是如何适用于我的方式。
答案 0 :(得分:0)
你可以采用不同的方式:
{{#each itemController='messages.message-list-item'}}
{{#view your-view}}
{{action}}{{computed property from view/controller}}
{{/view}}
{{/each}}
在循环中指定项目控制器并在视图中包装动作和属性 - 这意味着也可以在视图中调用或设置其中任何一个。
答案 1 :(得分:0)
我认为最好的方法是使用itemViewClass
,有关详细信息,请参阅api。
{{#each message itemController='messageListItem' itemViewClass='messageListItem'}}
{{! Assumes you have view defined in an App.MessageListItemView defined in your JavaScript}}
{{action}}
{{/each}}