2016-08-17 5 views
2

In Js-Datei:for-Schleife läuft nur einmal in AngularJS

$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"); 
      }    
     } 
    } 

In HTML

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

Dieser Code überprüft, ob das Kontrollkästchen nur einmal überprüft wird. Sobald das Kontrollkästchen deaktiviert ist, möchte ich, dass die for-Schleife erneut ausgeführt wird.

+0

fehlt HTML einige Code? –

+0

versuchen ohne Pause; – DMCISSOKHO

Antwort

0

Hier ist ein Plunkr Beispiel, wie Sie ein Kontrollkästchen des state beobachten konnte und etwas tun, wenn sie sich ändert:

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> 
+0

Vielen Dank für die Antwort. – Bharath

+0

Die Kontrollkästchen werden jedoch innerhalb einer ng-Wiederholung erstellt. – Bharath

+0

Daher kann ich nicht verschiedene Namen geben. – Bharath