我试图“ stopPropagation”以防止单击li内的元素(链接)时关闭TwitterBootstrap导航栏下拉菜单。
在Angular中,看起来像指令是执行此操作的地方?所以我有:
// do not close dropdown on click directives.directive('stopPropagation', function () { return { link:function (elm) { $(elm).click(function (event) { event.stopPropagation(); }); } }; });
…但是该方法不属于元素:
TypeError: Object [object Object] has no method 'stopPropagation'
我把指令与
<li ng-repeat="foo in bar"> <div> {{foo.text}}<a stop-propagation ng-click="doThing($index)">clickme</a> </div> </li>
有什么建议么?
“当前一些指令(即ng:click)停止事件传播。这阻止了与依赖于捕获此类事件的其他框架的互操作性。” -
…并且能够在没有指令的情况下进行修复,只需执行以下操作:
<a ng-click="doThing($index); $event.stopPropagation();">x</a>