我有一系列115本书,详细存储在ng-repeat中。使用{{$ index +1}}时,会显示1到115的计数。如果我按姓氏过滤书籍并显示12,{{$ index + 1}}将显示1到12的计数。是否可以使用$ index显示反向计数,以便计数以最高编号开头并降到最低?如果没有过滤,这将使用{{details.length - $ index}},但是当过滤12个项目的结果时,显示115到104而不是12到1.
我有这样的重复:
<tr ng-repeat="det in details | orderBy:['-YEAR_READ','-UniqueCounter'] | filter:searchingFor>
<td>{{$index + 1}}</td>
<td>{{details.length - $index}}</td>
<td>
答案 0 :(得分:2)
目前,在显示您所指的未过滤集合的索引时,您无法使用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>
答案 1 :(得分: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>