如何禁用父级 ng-click?

15

我有一个带有ng-click属性的HTML结构:

<div ng-click="parent()">
  <div ng-click="d"></div>
</div>

如果我使用ng-click="d",如何禁用外部的 ng-click="parent()" ?

2个回答

39

在Angular中,可以使用$event对象上的stopPropagation方法:

<div ng-click="parent()">
  <div ng-click="d(); $event.stopPropagation();"></div>
</div>

或将$event对象作为ng-click方法的参数传递,并在该方法中调用stopPropagation

<div ng-click="parent()">
  <div ng-click="d($event)"></div>
</div>

d中:

$scope.d = function (event) {
    // ...
    event.stopPropagation();
}

2

在子元素的ng-click事件中添加$event.stopPropagation();,可以防止父元素的ng-click被触发。

例如:

<div ng-click="parent();">
  <div ng-click="child(); $event.stopPropagation();">
  </div>
</div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接