在捕获阶段可以进行角度点击过程事件吗?

前端之家收集整理的这篇文章主要介绍了在捕获阶段可以进行角度点击过程事件吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在捕获阶段,是否有可能产生角度点击过程事件,而不是冒泡阶段?我想从父元素汇总数据,从父元素开始,并以点击的元素结束.
让我们看看 ngEventDirs.js#L50点击的源代码

您可以看到使用.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

猜你在找的Angularjs相关文章