AngularJS - 调用$ event.stopPropagation()的位置是否重要?

时间:2015-08-19 20:59:27

标签: angularjs events stoppropagation

我想停止将ng-repeat上的事件传播到父元素。我的代码是:

<li ng-repeat="node in nodes"><div ng-click="$event.stopPropagation(); myFunc(node);"></li>

经过一段时间的努力,我认为在ng-click上更改调用函数的顺序会修复它。我只需将其更改为:

<li ng-repeat="node in nodes"><div ng-click="myFunc(node); $event.stopPropagation();"></li>

为什么订单在这里很重要?事实上,我认为调用$ event.stopPropagation()应该在其他任何事情之前发生,以便事先传播在其他任何事情发生之前停止。

谢谢!

1 个答案:

答案 0 :(得分:0)

@event对象在ng-click指令中创建,您可以将其传递给ng-click处理函数:ng-click =&#34; myFunc(node):...& #34;

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

将$ event.stopPropagtion传递给ng-click函数myFunc(node); Angularjs指令按顺序调用函数。