为什么在删除angularjs中的行后更改?

时间:2015-04-09 09:37:59

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我做了一个简单的列表演示。在这个演示中我试图删除行,当我点击行。它工作正常,我能够删除行,当我点击行。 实际上我的问题是我给 $ index 这样的每一行 id 。第一行 id =0 和第二行 id =1 。但是当点击第一行(平均值= 0)时,它已删除。现在,当我点击第二行时, id =“1” .display id = 0 为什么?为什么我的id改变了。有没有办法删除行但是id仍然和以前一样。这是我的代码

http://codepen.io/anon/pen/GgbpzO

var app=angular.module("app",[]);

app.controller('maincntr',function($scope){

    $scope.changeValue={names:[{
        'name':"naveen",
        'lastname':"sharma"

    },{
        'name':"parveen",
        'lastname':"kumar"

    }]};

    $scope.rowClickEvent=function(id){
       alert(id)
        $scope.changeValue.names.splice($scope.changeValue.names.indexOf(id), 1);
    };


});

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为当你从数组中删除任何元素时,ng-repeat再次链接它,这样你就可以从0开始$index

假设我有数组[1,2,3]索引现在是0,1,2所以ng-repeat显示$ index为0 现在我从它中删除1数组现在是[1,2]所以索引再次由ng-repeat编译并再次从0开始,因此0再次出现。

希望有所帮助。 :)