javascript – 如何使用AngularJS中的过滤器从数组中删除项目?

前端之家收集整理的这篇文章主要介绍了javascript – 如何使用AngularJS中的过滤器从数组中删除项目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我点击tr没有任何过滤器,我的函数array.splice()工作.数组中的索引顺序正确,因此array.splice()可以正常工作.

当启用过滤器时,阵列中的索引不会更新,仍然以相同的顺序.所以array.splice()会删除错误的项目.

<span ng-click="orderP0 = 'statut_name'; reversePO=!reversePO">order</span>

    <tr ng-repeat="project in projects | orderBy : orderPO : reverse track by $index" ng-click="remove($event,$index,projects)">
        <span class="label" ng-bind="project.statut_name"></span>
    </tr>

    $scope.remove = function($event,index,array){
        array.splice(index,1);
    };

如何更新数组中的索引?或如何删除正确的项目?

解决方法

最简单的解决方案是更改您的删除函数以接收项目而不是索引.
$scope.remove = function(project){
    for(var i = $scope.projects.length - 1; i >= 0; i--){
        if($scope.projects[i].statut_name == project.statut_name){
            $scope.projects.splice(i,1);
        }
    }
}

示例:空档:http://plnkr.co/edit/51SNVMQjG3dsmpYI5RyY?p=preview

猜你在找的JavaScript相关文章