1

これは機能します:

{{#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

4

1 に答える 1

3

問題は、(配列コントローラーではなく) basicColours 計算プロパティで (それぞれを使用して) 反復処理を行っていることです。itemController プロパティを適用する場合は、コントローラー自体に each を適用する必要があります (これは、{{#each}} を実行したときに発生します (おそらく、これらも {{#this 内の各項目}} または {{#each)コントローラー内のアイテム}})。

別のテンプレートを作成して {{ render 'otherTemplate' basicColours}} を呼び出すこともできます

次に、 itemController を追加できる OtherTemplateArrayController を使用し、コントローラーのコンテンツが計算されたプロパティになります。

テンプレートで:

 {{ 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'
});
于 2013-10-05T17:44:41.480 に答える