我想停止将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()应该在其他任何事情之前发生,以便事先传播在其他任何事情发生之前停止。
谢谢!
答案 0 :(得分:0)
@event对象在ng-click指令中创建,您可以将其传递给ng-click处理函数:ng-click =&#34; myFunc(node):...& #34;
ngClick指令(以及所有其他事件指令)创建$ event变量,该变量在同一范围内可用。此变量是对JS事件对象的引用,可用于调用stopPropagation()
将$ event.stopPropagtion传递给ng-click函数myFunc(node); Angularjs指令按顺序调用函数。