AngularJS - ng-click没有停止传播

时间:2015-07-10 12:10:31

标签: angularjs

当点击父div时,它工作正常(即只有fun1()正在调用)。 当我点击内部div(test4)时,函数fun1()和fun2()都在调用,但是当我点击内部div时我只想调用fun2()。

<div ng-click="fun1()">
    <div>test1</div>
    <div>test2</div>
    <div>test3</div>
    <div ng-click="fun2()">test4</div>
</div>

2 个答案:

答案 0 :(得分:3)

工作人员:

http://plnkr.co/edit/tpl:8rFfZljYNl3z1A4LKSL2?p=preview

首先,您需要显式传递$ event,然后在其上调用stopPropagation()

  <div ng-click="fun2($event)">test4</div>

  $scope.fun2 = function(event){
    console.log("Fun2")
    event.stopPropagation();
  }

答案 1 :(得分:1)

ngClick指令(以及所有其他事件指令)创建$event变量,该变量在同一范围内可用。此变量是对JS事件对象的引用,可用于调用stopPropagation()

试试这个         <div ng-click="fun2(); $event.stopPropagation()">test4</div>

继承人plunkr