是否可以在捕获阶段而不是冒泡阶段进行角度点击过程事件?我希望从父元素开始按顺序聚合每个父元素的数据,并以点击的元素结束。
答案 0 :(得分:18)
ng-click
的源代码
正如您可以使用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