2016-12-26 15 views
3

我有一個存儲在ng-repeat下面的詳細信息的115本書的數組。使用{{$ index +1}}時,會顯示1到115的計數。如果按姓氏過濾圖書並顯示12,則{{$ index + 1}}將顯示1到12的計數。是否可以使用$ index顯示反向計數,以便計數以最高數字開始並走向最低?沒有過濾,這將工作使用{{details.length - $ index}}但過濾結果在12項顯示115通過104而不是12通過1.angularjs - 在ng-repeat中反向計數並過濾

我有一個ng重複像這樣:

<tr ng-repeat="det in details | orderBy:['-YEAR_READ','-UniqueCounter'] | filter:searchingFor> 
    <td>{{$index + 1}}</td> 
    <td>{{details.length - $index}}</td> 
    <td> 

回答

1

當您顯示索引時指的是未過濾的集合,因此您無法使用details.length變量查看過濾結果計數。使用as會做這樣ng-repeat="item in item | filter: { prop: 'search' }| customFilter as filteredResult"

<tr 
    ng-repeat="det in details | orderBy:['-YEAR_READ','-UniqueCounter'] | filter:searchingFor as filtered"> 
    <td>{{$index + 1}}</td> 
    <td>{{filtered.length - $index}}</td> 
    <td> 
</tr> 
0

的伎倆可以適用於收集新的過濾器,以獲得反向行爲,如使用混疊濾波器對象:

app.filter('reverse', function() { 
    return function(items) { 
    return items.slice().reverse(); 
    }; 
}); 

,並用它喜歡:

<tr ng-repeat="det in details |reverse | orderBy:['-YEAR_READ','-UniqueCounter'] | filter:searchingFor > 
    <td>{{$index + 1}}</td> 
    <td>{{details.length - $index}}</td> 
    <td> 
</tr> 
+0

將顯示未過濾數組的長度 – charlietfl