2016-12-16 5 views
0

質問があります。 ng-repeatでこの例をどのようにすればいいですか?ng-repeatで異なる数の商品を表示

Array.prototype.chunk = function (n) { 
    if (!this.length) { 
     return []; 
    } 
    return [ this.slice(0, n) ].concat(this.slice(n).chunk(n)); 
}; 

し、HTMLに:あなたはどのチャンクにあなたの配列を分割する関数を作成することができます

<div ng-repeat="item in collection | filter:<your filter.. probably index of a collection>"> 
+0

あなたはngRepeatを使用することができます。つまり、各サブセクションに同じ数の要素を表示する必要があります。次の部門に 'F、G'を表示するとどうなりますか?その場合は、配列全体を分割するか、オブジェクトフォーマットで作成し、サブセクションのリスト項目をグループ化する必要があります。 –

答えて

0

フィルターと一緒に

var collection = ['A', 'B', 'C', 'D', 'E']; 

<div class="item active"> 
<p>A</b> 
<p>B</b> 
</div> 
<div class="item"> 
    <p>C</b> 
    <p>D</b> 
</div> 
<div class="item"> 
    <p>E</b> 
</div> 
0

使用NG-リピータ

<div ng-repeat="item in collection.chunk(2) track by $index"> 
    <div class="item" ng-class="{active: $index == 0}"> 
     <p ng-repeat="subItem in item" ng-bind="subItem"></b>   
    </div> 
</div> 

もちろん同じことを行う他の多くの方法があります。

0

HTML:

<div ng-repeat="item in alphas track by $index"> 
    <div ng-if="call($index)"> 
     <p>{{alphas[$index]}}</p> 
     <p>{{alphas[$index+1]}}</p> 
     <hr/> 
    </div> 
</div> 

コントローラ:あなたはすべてのセグメントで同じ動作を持っている場合にのみ

$scope.alphas = ['A', 'B', 'C', 'D', 'E']; 
$scope.call = function(i){ 
    if(i%2 === 0) 
     return true; 
    else 
     return false; 
} 
+0

素晴らしいロジックです。良い。 – SaiUnique

関連する問題