for循环在angularjs中只运行一次

时间:2016-08-17 11:54:08

标签: html angularjs

在Js文件中:

$scope.isCheckboxChecked = function() {
        var chks = document.getElementsByName('chk[]');
        for (var i = 0; i < chks.length; i++)
        {
            if (chks[i].checked) 
            {
                $scope.checkBoxClicked = true;
                $('#btnUpdateData').attr("data-target", "#update-modal");
                $('#btnUpdateData').attr("data-toggle", "modal");
                break;
            }
            if ($scope.checkBoxClicked == false)
            {
                alert("Please select at least one checkbox");
            }            
        }
    }

在HTML中

  <div class="row" style="">
        <button type="button" id="btnUpdateData" class="btn btn-info" ng-click="isCheckboxChecked()">Update</button>
    </div>

此代码检查复选框是否仅选中一次。 取消选中该复选框后,我希望for循环再次运行。

1 个答案:

答案 0 :(得分:0)

这是一个Plunkr示例,说明如何查看复选框的状态转换并在其发生变化时执行某些操作:

https://plnkr.co/edit/kyEv7IyAXGFRdZjaD4vM?p=preview

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

   app.controller('MainCtrl', function($scope) {
     $scope.$watch("testCheckBox", function(newVal, oldVal){
       alert('Checkbox changed!')
   });

});

HTML:

<body ng-controller="MainCtrl">
 <p>Check box test</p>
 <input type="checkbox" name="testCheckbox" ng-model="testCheckBox"></input>

</body>