我面临的问题,因为我有一个div内的复选框,我想在这两种情况下调用一个函数:如果我们改变复选框的值或点击div。重复的事件触发与嵌套的div ng-
现在的问题是,当我点击复选框,事件被激发两次,我没有得到预期的结果。
<div ng-click="checkEntry(config.id)"><input type="checkbox" ng-model="modelCheckbox" ng-change="checkEntry(config.id)" ng-checked="someArray.indexOf(config.id) !== -1"></div>
$scope.checkEntry = function(id){
var idx = $scope.someArray.indexOf(id);
if(idx === -1){
$scope.someArray.push(id);
}else{
$scope.someArray.splice(idx, 1);
}
}
现在,如果我点击div,它工作正常,复选框被选中。但是,如果我单击该复选框,该函数被调用两次,并不按预期方式工作。
请帮我解决
尝试加入'$ event.stopPropagation();'和'DIV –
当你的复选框的NG-click'被点击。其点击事件被解雇。并将其传播到父元素。元素在父层次结构中,并且附加了点击事件,他们也会捕获这些事件。这被称为事件冒泡。因此您需要在复选框中单击$ event.stopPropagation()。 –