繁体   English   中英

ArrayController如何在{{#each sublist}}中不需要显式的itemController而有子列表?

[英]How can ArrayController have sublists without needing explicit itemController in {{#each sublist}}?

有效

{{#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 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'
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM