增量在控制器

时间:2016-08-06 07:31:19

标签: javascript angularjs controller

    $scope.isChecked = function(id){              
    var i=0,j=0,k=0;
    //$scope.abc[i].usertype[j].keywords[0].key_bool=true;
    if($scope.abc[i].type_selected == true){
        while($scope.abc[i].usertype.length){
            while($scope.abc[i].usertype[j].keywords.length){
                if($scope.abc[i].usertype[j].keywords[k]._id == id){
                    if($scope.abc[i].usertype[j].keywords[k].key_bool == true){
                        $scope.abc[i].usertype[j].keywords[k].key_bool = false;
                        return false;
                    }
                    else{
                        $scope.abc[i].usertype[j].keywords[k].key_bool = true;
                        return true;
                    }                        
                }
                k++;
            }
            j++;
        }
    }
};

增加k ++是在工作,而不是增加j ++,有人可以解释一下,为什么会发生这种情况?

每当选中/取消选中复选框时,都会调用

isChecked函数:

ng-click="isChecked(l._id)"

一切都适用于'j = 0',但不适用于以后的'j'值。

3 个答案:

答案 0 :(得分:0)

只是因为返回语句每次到达return语句时执行都会退出函数。所以j ++;每次执行if语句时都无法访问

答案 1 :(得分:0)

对于j=0,它进入内部while loop,当它到达return语句时,它就会失效。

这就是为什么outer while loop没有再次执行。

要详细了解returnread this

答案 2 :(得分:0)

我得到了答案。 我们要把k = 0;在2个循环之间。 仍然感谢你们的帮助