2

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

这是一个演示:http ://plnkr.co/edit/WCeBGm49F1QnvfUrHWG6?p=preview

4

1 回答 1

4

如果您使用ng-repeatwith orderBy,请尝试使用 fromthis 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);
}
于 2013-12-20T19:05:25.163 回答