点击两次Angular指令中的事件处理程序
Click event handler in Angular directive called twice
为click创建了click事件指令,但是click被调用了两次。
stopPropagation
不能帮助我
angular.module('dod').directive('checkbox', [function () {
var checkbox = {
restrict: 'A',
replace: false,
transclude: false,
link: function (scope, elem, attrs) {
elem.on('click', function (e) {
elem.toggleClass('checked');
});
}
};
return checkbox;
}]);
您所展示的使用DOM进行操作的方式不是一个好主意。这是"非角方式"。既然你想切换你正在点击的元素,看起来你可以从angularjs文档中尝试这种方法:
<script>
angular.module('checkboxExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.checkboxModel = {
value1 : true,
value2 : 'YES'
};
}]);
</script>
<form name="myForm" ng-controller="ExampleController">
<label>Value1:
<input type="checkbox" ng-model="checkboxModel.value1">
</label><br/>
<label>Value2:
<input type="checkbox" ng-model="checkboxModel.value2"
ng-true-value="'YES'" ng-false-value="'NO'">
</label><br/>
<tt>value1 = {{checkboxModel.value1}}</tt><br/>
<tt>value2 = {{checkboxModel.value2}}</tt><br/>
</form>
https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D 相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- dropdown.js中的复杂事件处理
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 复选框,然后单击事件处理
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- AngularJS:如何从指令添加的元素中删除事件处理程序
- 在 Angular 指令中的事件处理程序中调用范围函数
- 似乎无法将事件处理程序绑定到 Angular.js 中指令生成的标记
- 点击两次Angular指令中的事件处理程序
- click事件处理程序和ngClick指令的区别是什么?
- AngularJS指令中的事件处理程序不触发/参数事件名称
- Javascript抛出:拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:"script-src
- angular指令中的事件处理程序