我有这样的指令:
app.directive('custom', function(){
return {
restrict:'A',
link: function(scope, element){
element.bind('click', function(){
alert('want to prevent this');
});
}
}
});
是的,对于这种情况,有必要进行 jQuery 方式的绑定(bind)。
现在我想在满足某些条件时停止此事件(点击)传播。
尝试过:
$event.stopPropagation();
$event.preventDefault();
但这并没有帮助。
例如这里的 fiddle - http://jsfiddle.net/STEVER/5bfkbh7u/
最佳答案
在您的情况下,您无法停止传播,因为点击事件发生在同一元素上,只有两个不同的处理程序。
但是,您可以利用 Controller ngClick
和指令中的相同 事件对象这一事实。所以你可以做的是为这个事件对象设置一些属性并在指令中检查它:
$scope.dosomething = function($event){
$event.stopPropagation();
$event.preventDefault();
alert('here');
if (someCondtion) {
$event.stopNextHandler = true;
}
}
在指令中:
link: function(scope, element){
element.bind('click', function(e) {
if (e.stopNextHandler !== true) {
alert('want to prevent this');
}
});
}
关于javascript - AngularJS:如何停止 ng-click 的事件传播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28586231/