在捕获阶段而不是冒泡阶段是否可以有 angularjs ng-click 过程事件?我想聚合来自每个父元素的数据,从父元素开始,到被点击的元素结束。
最佳答案
让我们看看ng-click
的源代码在 ngEventDirs.js#L50
如您所见 ng-click
以及所有其他使用 .on()
的事件指令.
所以,答案是不,这是不可能的 .
如果你真的需要它,你可以为此编写一个自定义指令。比如修改ng-click
的代码一点点:
.directive('captureClick', function($parse) {
return {
restrict: 'A',
compile: function(element, attrs) {
var fn = $parse(attrs.captureClick);
return function(scope, element) {
element[0].addEventListener('click', function(event) {
scope.$apply(function() {
fn(scope, {
$event: event
});
});
}, true);
};
}
}
});
并像这样使用它:
<div title="A" ng-click="onBubbled($event)" capture-click="onCaptured($event)">
<div title="B" ng-click="onBubbled($event)" capture-click="onCaptured($event)">
<div title="C" ng-click="onBubbled($event)" capture-click="onCaptured($event)">
Yo!
</div>
</div>
</div>
示例Plunker: http://plnkr.co/edit/SVPv0fCNRQX4JXHeL47X?p=preview
关于angularjs - angularjs ng-click 可以在捕获阶段处理事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296808/