为什么删除angularjs中的行后id会发生变化



我做了一个简单的列表演示。在这个演示中,我试图在点击行时删除行。它运行良好,我可以在点击行的时候删除行。实际上,我的问题是,我给每一行都赋予了id,就像$index那样。所以第一行id =0和第二行id =1。但当单击第一行(平均id=0)时,它被删除了。现在,当我单击具有id="1".displayid=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);
    };

});

之所以会发生这种情况,是因为当您从数组中删除任何元素时,请再次重复链接,这样您将再次获得从0开始的$index

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

希望能有所帮助。:)

相关内容

最新更新