本文介绍了如何从与AngularJS滤波器阵列删除项目吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在 TR 点击没有任何过滤器,我的功能方法Array.splice()的作品。数组中的索引以正确的顺序,因此方法Array.splice()的作品。

When I click on tr without any filter, my function array.splice() works. Indexes in the array are in the correct order, so the array.splice() works.

当过滤器是启用,阵列中的索引中不相同的顺序更新并仍。因此,方法Array.splice()删除错误的项目。

When the filter is enable, Indexes in the array are not updated and still in the same order. So array.splice() removes the wrong item.

    <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);
    };

如何更新阵列中索引?或如何删除右边的项目?

How to update index in the array ? Or How to removes the right item ?

推荐答案

最简单的解决办法是改变你remove函数参加该项目,而不是指数。

The simplest solution would be to change your remove function to take in the project instead of the index.

$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);
        }
    }
}

例Plunker:

这篇关于如何从与AngularJS滤波器阵列删除项目吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 19:17