1

コレクションにデータがあり、それらをテンプレートにレンダリングする必要があります。データが2つにグループ化されている場合、どうすれば結果を得ることができますか? 次のように並べ替える必要があります。

._______________________
| 1 | 3 | 5
|___|___|_______________
| 2 | 4 | and so on...
|___|___|_______________

1+2、3+4、... のペアごとに垂直の div 要素を作成して、このようなアイテムのスタイルを設定しました。ハンドルバーを使用してそのようなグリッドにデータをレンダリングするにはどうすればよいですか? 私にできることはこれだけです:

{{#each App.myController}}
 ... render item ...
{{/each}}
4

1 に答える 1

1

まず、レイアウトで可能な場合は、CSS でこれを実行しようとします。

そうでない場合は、計算されたプロパティをコントローラーに追加して、それらをペアにグループ化し、そのようにすることが最善の策です。このようなもの:

{{#each App.myController.pairedContent}}
  <!-- view for content.firstObject -->
  <!-- view for content.lastObject -->
{{/each}}

App.MyController = Ember.ArrayController.extend({
  pairedContent: ( function(){
    return this.get('content').reduce( function(array, object, index){
      if(index % 2){
        array.get('lastObject').pushObject(object)
      }
      else{
        array.pushObject(Ember.A([object]))
      }
      return array
    }, Ember.A())
  }).property('content')
})
于 2012-07-15T12:58:01.527 に答える