2015-06-05 50 views
0

我從本地SQLite數據庫中提取數據並使用ng-view填充屏幕。根據返回的物品數量,重複數據ng-repeat。該頁面必須始終有6個項目。我可以在我的範圍內獲得總數爲$scope.productCount。此數字可以介於0和6之間。如何根據我需要的數字有條件地進行ng-repeat?

我想要做的是對其餘部分額外運行ng-repeat。意思是如果我只返回4我需要它重複兩次。但是,如果我得到6回,我根本不需要重複。

我想過做這樣的事情

ng-repeat="i in getNumber(6 - productCount) ng-show="productCount < 6" 

,並使用這在我的控制

$scope.getNumber = function(num) { 
    return new Array(num); 
} 

我不知道,如果1)這是正確的方式。 2)如果我的想法能奏效。如果它是一個半身像,我不想去那個兔子洞。

+0

爲了獲得剩餘使用模數運算符'6%4 = 2'。如果這是正確的,讓我知道,這樣我就可以提出答案;) – dcodesmith

+1

你想做什麼不明白。它是否像你最少需要6件物品,如果它少於6件重複這些物品? – sabithpocker

+0

我更新了ng-repeat的問題。基本上,如果結果小於6,我需要重複其餘部分 – dcp3450

回答

0

如何使用過濾方法。

ng-repeat='i in productCount | limitTo:4' 
0
<div ng-if="productCount < 6"> 
     <div ng-repeat="data in productCount"> 

     </div> 
    <div> 
0

(如果不知道我明白你的問題吧)

可以創建自定義過濾器,重複數組項,如果有小於所需的項目數。

MyApp.filter("arrayItemsRepeat", function() { 
    return function (array, count) { 
     var i = 0; 

     while(array.length < count) { 
      array.push(array[i]); 
      i++; 
     } 

     return array; 
    } 
}); 

,然後使用濾波器中的模板:

ng-repeat='item in items | arrayItemsRepeat:6'