在捕获阶段,是否有可能产生角度点击过程事件,而不是冒泡阶段?我想从父元素汇总数据,从父元素开始,并以点击的元素结束.
让我们看看
ngEventDirs.js#L50点击的源代码
原文链接:/angularjs/140291.html您可以看到使用.on()的ng-click和所有其他事件指令.
所以答案是否定的,这是不可能的.
如果你真的需要它,你可以编写一个自定义的指令.例如,修改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