0
我遇到了一個問題在ng-repeat中過濾我的結果集。該過濾器在每個迭代中都通過ng-repeat循環運行(因此,如果我有10個由currentDispatch.dispatches
返回的調度,它將運行10次)。但第一次,runs
將只有1個元素。下一次通過它將有2個,然後3個,等等。什麼結果看起來像我的屏幕上是....Angularjs過濾器累積數組
[1],[1],[1,3],[1,3,4]
我怎樣才能使它所以只運行過濾器一次,因爲它有所有要過濾的元素?我只需要最終的結果集,而不是每次迭代的結果。
我的自定義過濾器
angular.module('prototype').filter('dispatchedForMyEquipment', ['Config', function(Config){
return function(runs){
var result = []
var myEquipment = Config.getEquipment();
runs.forEach(function(run, index, array){
myEquipment.forEach(function(dispatchEquipment, index, array){
if (run.units.indexOf(dispatchEquipment)!= -1){
result.push(run);
return
}
});
})
return result
}
}])
我NG重複條款
<tr ng-repeat-start="dispatch in ($state.current.data.latest ?
(currentDispatch.dispatches | orderBy: '-time' | dispatchedForMyEquipment)
: (currentDispatch.dispatches | orderBy: '-time')) track by $index">
一旦我解決這個問題的手,我將採取由$指數跟蹤了。
這不會起作用...這需要我知道我的列表中有多少元素,我不知道。 –
誤解了你的問題。你只想運行一次ng-repeat,它現在就是一旦完成後顯示結果集。 –