angularjs正确的行没有从表中删除

时间:2017-01-31 20:20:36

标签: angularjs

我一直在努力解决几个问题,所以我想在做了很多搜索之后我会伸手去寻求帮助。我正在使用AngularJS。

  1. 我的第一个问题是当我使用ng-repeat时复选框无法正常工作,它只会检查下面表格代码段中的第一个框。我正在使用自定义复选框,我用css编码是标签的原因。

  2. 我的第二个问题是,当我单击复选框时,它应该删除我想要的任何行,但如果我从表格底部开始,它会删除之前的行,但是如果我从顶部开始该表按预期工作,除了被检查的代码片段。我尝试了很多方法来设置索引,但它仍然不起作用。

  3. $ scope.removeRow = function(type){

    var index = -1;
    var myArr = eval( $scope.contacts );
        for( var i = 0; i < myArr.length; i++ ) {
           if( myArr[i].type === type ) {
               index = i;
               break;
                 }
          {
    if( index === -1 ) {
            alert( "Something gone wrong" );
          } 
    
    
        $scope.contacts.splice(index, 1);       
    };  
    

1 个答案:

答案 0 :(得分:0)

首先,请勿使用eval($scope.contacts)。如果该变量是一个字符串并包含javascript它将运行该javascript。如果未使用myArr定义myArr = $scope.contacts,您可以使用myArr = JSON.parse(JSON.stringify($scope.contacts)或使用angular.copy方法。

我没有看到你的HTML,所以我无法告诉你为什么你的复选框不起作用。但是关于你的第二个问题,如果你在点击splice时删除了上面的一行,为什么不将该代码更改为:

$scope.contacts.splice(index + 1, 1)