这有效:
{{#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
问题是您正在迭代(使用每个)basicColours 计算属性(而不是数组控制器)。 如果您希望应用itemController属性,则需要在控制器本身上应用每个属性(这是当您执行{{#each}}时发生的情况(可能这些以及
{{#each project in this}}或{{#each item in controller}} )。您也可以创建另一个模板并调用{{ render 'otherTemplate' basicColors}}
然后,它将使用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'
});