我正在使用ng-repeat + Filter + Pagination(ui-bootstrap)
1 ng-repeat + filter工作正常:
<tr data-ng-repeat="target in targets | filter:search track by $index">
2 ng-repeat + filter +分页也正常工作:
<tr data-ng-repeat="target in targets | filter:search | startFrom:(currentPage - 1) * pageSize | limitTo: pageSize ">
3-问题是当我通过$ index
组合ng-repeat + Filter + Pagination + track时<tr data-ng-repeat="target in targets | filter:search | startFrom:(currentPage - 1) * pageSize | limitTo: pageSize track by $index">
我的索引值从每页0到4重新启动
here is a screen shot of my table
关于“跟踪$ index”的正确顺序的任何想法!我应该把它放在哪里?
答案 0 :(得分:2)
最后我用其他逻辑解决了我的问题,我使用跟踪$ index来编辑我表格中的选定行字段,如下所示:
<td><input class="todo" type="text" ng-model-options="{ updateOn: 'blur' }" ng-change="updateTarget(targets[$index])" ng-model="target.YEAR"></td>
<td><input class="todo" type="text" ng-model-options="{ updateOn: 'blur' }" ng-change="updateTarget(targets[$index])" ng-model="target.MONTH"></td>
现在我从ng-repeat中删除了$ index的曲目,并将我的td更改为:
<td><input style="width:40px" class="todo" type="text" ng-model-options="{ updateOn: 'blur' }" ng-change="updateTarget(target)" ng-model="target.YEAR"></td>
<td><input style="width:40px" class="todo" type="text" ng-model-options="{ updateOn: 'blur' }" ng-change="updateTarget(target)" ng-model="target.MONTH"></td>
所以在ng-change上,我的更新函数将以所有对象作为参数调用,不需要$ index来确定当前对象。
答案 1 :(得分:0)
通常正确的sintax是这样的:
<div ng-repeat="item in items track by $index | my filter....">
希望这会有所帮助