angularjs - 在带过滤的 ng-repeat 中反向计数
angularjs - counting in reverse in ng-repeat with filtering
我在 ng-repeat 中详细存储了 115 本书的数组。当使用 {{$index +1}} 时,出现 1 到 115 的计数。如果我按姓氏过滤书籍并显示 12,{{$index + 1}} 将显示 1 到 12 的计数。是否可以使用 $index 显示反向计数,以便计数从最高数字开始去最低?如果没有过滤,这将使用 {{details.length - $index}} 工作,但是当过滤 12 个项目的结果时显示 115 到 104 而不是 12 到 1。
我有一个像这样的 ng-repeat:
<tr ng-repeat="det in details | orderBy:['-YEAR_READ','-UniqueCounter'] | filter:searchingFor>
<td>{{$index + 1}}</td>
<td>{{details.length - $index}}</td>
<td>
当前,在显示索引时,您引用的是未过滤的集合,因此您无法使用 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>
您可以对集合应用新的过滤器以获得相反的行为,例如:
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>
我在 ng-repeat 中详细存储了 115 本书的数组。当使用 {{$index +1}} 时,出现 1 到 115 的计数。如果我按姓氏过滤书籍并显示 12,{{$index + 1}} 将显示 1 到 12 的计数。是否可以使用 $index 显示反向计数,以便计数从最高数字开始去最低?如果没有过滤,这将使用 {{details.length - $index}} 工作,但是当过滤 12 个项目的结果时显示 115 到 104 而不是 12 到 1。
我有一个像这样的 ng-repeat:
<tr ng-repeat="det in details | orderBy:['-YEAR_READ','-UniqueCounter'] | filter:searchingFor>
<td>{{$index + 1}}</td>
<td>{{details.length - $index}}</td>
<td>
当前,在显示索引时,您引用的是未过滤的集合,因此您无法使用 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>
您可以对集合应用新的过滤器以获得相反的行为,例如:
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>