2016-12-26 48 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