Angularjs 如何仅在选中复选框时从复选框元素调用事件

Angularjs 如何仅在选中复选框时从复选框元素调用事件,angularjs,Angularjs,这是我的代码: angular.module('myApp',[]) .controller('Ctrl',['$scope',函数($scope){ $scope.foo=函数(){ 警报(“布拉布拉布拉布拉”); }; }]); #rollDiv{ 保证金:4倍; 背景色:#EFEF; 边界半径:4px; 边框:1px实心#d0; 溢出:自动; 浮动:左; } #rollDiv标签span{ 填充物:5px 5px 2px 2px; 显示:块; } 这是您要找的 <input typ

这是我的代码:

angular.module('myApp',[])
.controller('Ctrl',['$scope',函数($scope){
$scope.foo=函数(){
警报(“布拉布拉布拉布拉”);
};
}]);
#rollDiv{
保证金:4倍;
背景色:#EFEF;
边界半径:4px;
边框:1px实心#d0;
溢出:自动;
浮动:左;
}
#rollDiv标签span{
填充物:5px 5px 2px 2px;
显示:块;
}

这是您要找的

<input type='checkbox' ng-model='chkMonitor'  ng-click='chkMonitor && foo()'>
将永远不会执行该函数。因此,任务是用表示检查状态的变量替换
false
。我们可以使用
$event.target.checked
——但是角度表达式中的DOM引用是被禁止的

解决方案是使用复选框绑定范围变量,并将其与
foo()一起使用


当然,有一些传统的方法可以过滤掉
foo()函数中的点击。但你的问题是如果没有选中,就不要触发
foo()

看看这个:

angular.module('myApp',[])
.controller('Ctrl',['$scope',
职能($范围){
$scope.foo=函数(){
控制台日志(“blablabla”);
};
}
]);
#rollDiv{
保证金:4倍;
背景色:#EFEF;
边界半径:4px;
边框:1px实心#d0;
溢出:自动;
浮动:左;
}
#rollDiv标签范围{
填充物:5px 5px 2px 2px;
显示:块;
}

我将ng单击切换为ng更改,使其更加健壮,捕捉到更多场景。
ng-click='false && foo()'