如何检查是否复选框被选中或取消选中使用angularjs
问题描述:
<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");
但是,它不能正常工作,请您及时给予解决方案。
答
您可以通过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");
}
答
由于您在ng-repeat
内有checkbox
。 ng-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>
贵'NG-repeat'作品? –
函数'Menu_Dtls_Checkbox'调用吗? –
Yes.ng-repeat工作正常。甚至Menu_Dtls_Checkbox函数也被检测到。$ scope.hasChecked正在变得不确定。 –