2017-09-23 137 views
-1
<div ng-repeat="sub in rolem.submenus" > 
<input type="checkbox" ng-model="hasChecked" ng-change="Menu_Dtls_Checkbox(sub)"/>{{sub}} <br/> 
</div> 

器和控制器,如何檢查是否複選框被選中或取消選中使用angularjs

$scope.Menu_Dtls_Checkbox=function(submenuname){ 
     if($scope.hasChecked){ 
      alert("checked"); 
     } 
     else 
     alert("Unchecked"); 

但是,它不能正常工作,請您及時給予解決方案。

+0

貴'NG-repeat'作品? –

+0

函數'Menu_Dtls_Checkbox'調用嗎? –

+0

Yes.ng-repeat工作正常。甚至Menu_Dtls_Checkbox函數也被檢測到。$ scope.hasChecked正在變得不確定。 –

回答

-1

您可以通過hasChanged標誌作爲參數傳遞給函數:

<div ng-repeat="sub in rolem.submenus" > 
<input type="checkbox" ng-model="hasChecked" ng-change="Menu_Dtls_Checkbox(sub, hasChecked)"/>{{sub}} <br/> 
</div> 


$scope.Menu_Dtls_Checkbox=function(submenuname, hasChecked){ 
    if(hasChecked){ 
     alert("checked"); 
    } 
    else{ 
    alert("Unchecked"); 
    } 
1

由於您在ng-repeat內有checkboxng-repeat將爲每個創建的checkbox創建一個新的ng-model。所以,我建議你使用JSON對象跟蹤下面的複選框的值。

angular.module('app',[]).controller('mainCtrl', function($scope){ 
 
    $scope.rolem = { 
 
     submenus:['xxx','yyy','zzz'] 
 
    }; 
 
    $scope.cbList = {}; 
 
    $scope.Menu_Dtls_Checkbox=function(submenuname){ 
 
    if($scope.cbList[submenuname]){ 
 
     alert("checked"); 
 
    } 
 
    else{ 
 
    alert("Unchecked"); 
 
    } 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app='app' ng-controller='mainCtrl'> 
 
<div ng-repeat="sub in rolem.submenus" > 
 
    <input type="checkbox" ng-model="cbList[sub]" ng-change="Menu_Dtls_Checkbox(sub)"/>{{sub}} <br/> 
 
    </div> 
 
</div>

相關問題