AngularJS Linky过滤器停止传播

Gre*_*reg 5 javascript onclick stoppropagation angularjs

我有一个span看起来像这样的标签:

<span ng-bind-html="item.Name | linky" ng-click="open(item)"></span>
Run Code Online (Sandbox Code Playgroud)

在ng-repeat中.

我有一个问题,如果item.Name包含一个电子邮件或链接,linky过滤器更改html并插入一个锚标记.现在,当我单击链接时,ng-click触发并且锚点打开,但我只想打开锚点并阻止调用ng-click ...这可能吗?

Glo*_*opy 6

对于你的HTML,这样的事情怎么样:

<span ng-bind-html="item.Name | linky" ng-click="open(item, $event)"></span>
Run Code Online (Sandbox Code Playgroud)

这对你的函数调用:

$scope.open = function(item, event){
    if(event.srcElement.tagName !== 'A'){
        alert('do something here with ' + item.Name);
    }        
}
Run Code Online (Sandbox Code Playgroud)

可能有更好的方法,但我相信这会奏效.虽然它出现在我在这篇小组文章中看到的文档$event中.