Ember.js对象的把手模板由两个分组

时间:2012-07-15 10:12:12

标签: javascript templates ember.js handlebars.js

我在集合中有我的数据,我需要将它们渲染到模板中。当数据按两个分组时,如何实现结果?我需要像这样对它们进行排序:

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

我为每个1 + 2,3 + 4,...对创建了垂直div元素来设置像这样的项目。如何使用把手将数据渲染到这样的网格中?我所能做的就是:

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

1 个答案:

答案 0 :(得分: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')
})