Ember.js ArrayController如何在{{{each sublist}中拥有子列表而不需要显式itemController?
此有效:Ember.js ArrayController如何在{{{each sublist}中拥有子列表而不需要显式itemController?,ember.js,Ember.js,此有效: {{#each basicColours itemController='colour'}} ColoursController = Ember.ArrayController.extend({ itemController: 'colour', numBasicColours: 5, basicColours: function(){ return this.get('arrangedContent').slice(0, this.get('numBasicCo
{{#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='color'
,特别是因为该选项不是动态查找的,也就是说,我无法执行itemController=itemController
问题是您正在迭代(使用每个)基本颜色计算属性(而不是数组控制器)。如果希望应用itemController属性,则需要将每个属性覆盖到控制器本身上(这是在执行{{{each}}操作时发生的情况(可能还有这些属性{{{each}中的每个项目}或{{{each}中的每个项目})
您也可以创建另一个模板并调用
{{呈现“其他模板”基本颜色}
它将使用其他TemplateArrayController,您可以将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'
});
这可能不是您想要的,但您只需要在循环或控制器中声明itemController。尽管上述方法可行,但数组控制器确实定义了itemController,并且有一个裸
{{each}
按预期工作,在循环中提供一个colorcontroller
的实例导致迭代器此
是一个颜色
,而不是颜色控制器
,除非明确设置了itemController
。问题的原因是,是的,我只想在array\u控制器中声明它。