有效:
{{#each basicColours itemController='colour'}}
ColoursController = Ember.ArrayController.extend({
itemController: 'colour',
numBasicColours: 5,
basicColours: function(){
return this.get('arrangedContent').slice(0, this.get('numBasicColours'))
}.property('arrangedContent'),
});
但我希望能够在每个调用中没有itemController='colour'
的情况下执行此操作,特别是因为该选项未动态查找,即我无法执行itemController=itemController
答案 0 :(得分:3)
问题是你在basicColours计算属性(不是数组控制器)上迭代(使用每个)。如果你想要应用itemController属性,你需要每个都通过控制器本身(这是你执行{{#each}}时会发生的事情(可能还有{{#each item in this}}或{{#each控制器中的项目}})。
您也可以创建另一个模板并调用 {{render'otherTemplate'basicColours}}
然后使用OtherTemplateArrayController你可以添加itemController然后控制器的内容将是你的计算属性。
在模板中:
{{ render 'otherTemplate' basicColours}}
ColoursController = Ember.ObjectController.extend({
numBasicColours: 5,
basicColours: function(){
return this.get('arrangedContent').slice(0, this.get('numBasicColours'))
}.property('arrangedContent'),
});
OtherTemplateArrayController = Ember.ArrayController.extend({
itemController: 'colour'
});