已排序和已过滤的商品具有错误的$ index值

时间:2013-12-20 16:08:15

标签: angularjs ngtable

当我使用ng-table对某些内容进行排序或过滤时,其$ index不会更新。如果我有4个项目,使用deleteRow($ Index)在ng-click中排序ASC,那么$ index将是0到3.现在如果我将它们排序为DESC,那么第一行仍然有$ index = 3,尽管它应该是0.所以我尝试删除第一行,它最后删除了最后一行,因为$ Index仍然设置为3.当我尝试删除过滤的行时,会发生同样的事情。

以下是演示:http://plnkr.co/edit/WCeBGm49F1QnvfUrHWG6?p=preview

1 个答案:

答案 0 :(得分:4)

如果您将ng-repeatorderBy一起使用,请尝试从this post开始删除项目。

可能看起来像这样:

HTML:

....
<tr ng-repeat="user in users | orderBy:'name':true">
    <td data-title="'Name'">
         <span ng-bind="user.name"></span>
         <button ng-click="remove(user)"></td>
</tr>
...

在控制器中:

$scope.remove = function(user){
   $scope.users.splice($scope.users.indexOf(user), 1);
}