使用项目控制器,并将属性添加到项目控制器。它是一个控制器,将用于控制器列表中的每个项目。
App.ColorsController = Em.ArrayController.extend({
itemController: 'color'
});
App.ColorController = Em.ObjectController.extend({
isExpanded: false
});
http://emberjs.jsbin.com/iSaJELug/2/edit
如果您在谈论 isExpanded 的 arraycontroller 范围,那么它同样简单:
http://emberjs.jsbin.com/iSaJELug/3/edit
{{#each item in controller}}
{{#if controller.isExpanded}}
<li>Color: {{item.color}} and Class: {{item.class}}</li>
{{else}}
<li>Color: {{item.color}}</li>
{{/if}}
{{/each}}
App.IndexController = Em.ArrayController.extend({
isExpanded: false,
});
最后一点,当您只是说{{each controller}}
您正在将范围从控制器范围内更改为范围内的项目时,如果您想访问控制器属性,则需要使用controller.isExpanded
.