我有一个按属性“ age”和“ name”排序的表,但是我有一个行计数器(counterR),它显示表中的行数。
我想在OrderBy上排除此商品,因为它也已订购,我需要它是静态的并且始终订购,但我不能。
我的问题有Plunker链接:http://plnkr.co/edit/MJYayUANphxksbGkyEcj?p=preview
HTML:
<body ng-controller="MainCtrl">
<table border="0">
<thead>
<tr>
<th>#</th>
<th>ID</th>
<th ng-click="sortType = 'name';sortReverse=!sortReverse">NAME</th>
<th ng-click="sortType = 'age';sortReverse=!sortReverse">AGE</th>
</tr>
</thead>
<tbody>
<tr ng-init="counterR=incrementCounter()" ng-repeat="item in items | orderBy:sortType:sortReverse">
<td>{{counterR}}</td>
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
</tr>
</tbody>
</table>
JS:
$scope.items = [
{"name":"Jhon","id":"BB1","age":23},
{"name":"Austin","id":"BB2","age":44},
{"name":"Mark","id":"BB3","age":56},
{"name":"Jenn","id":"BB4","age":15}
];
var counterRow = 0;
$scope.incrementCounter = function(){
counterRow = counterRow + 1;
return counterRow;
}
最佳答案
而不是将行号与数据一起存储-之所以行不通,是因为行号不是特定于数据行,而是特定于显示位置,您将需要“即时”计算值。在ng-repeat
的范围内,可以使用特殊的$index
变量执行此操作。也就是说,代替
<td>{{counterR}}</td>
从数据行中读取一个值,您将使用
<td>{{$index+1}}</td>
(假设序号从1开始)
关于javascript - 排除表中OrderBy上的项目-AngularJS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45018502/