2012-07-15 67 views
1

我在集合中有我的數據,我需要將它們呈現到模板中。如何在數據分爲兩組的情況下實現結果?我需要他們這樣的排序:Ember.js對象分組爲2的把手模板

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

我創建垂直div元素爲每1 + 2,3 + 4,......對樣式像這樣的項目。我如何使用把手將數據渲染到這樣的網格?我所能做的就是這樣:

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

回答

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') 
}) 
+0

我想通過CSS做到這一點。但是如何?你能幫我嗎? – 2012-07-16 21:46:32

+0

這真的取決於你目前的結構抱歉。如果你願意放棄IE7-8的支持(或者用jQuery來填充它),你可以使用CSS3的第n個子選擇器。 – 2012-07-17 01:54:29

+0

順便說一句,你的例子不適合我:數組是未定義的。返回值的格式是什麼? – 2012-07-17 09:01:47