javascript - AngularJS Linky过滤器停止传播

标签 javascript onclick angularjs stoppropagation

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

<span ng-bind-html="item.Name | linky" ng-click="open(item)"></span>

在 ng-repeat 中。

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

最佳答案

像这样的 html 怎么样:

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

这是你的函数调用:

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

可能有更好的方法,但我相信这会奏效。虽然它在 documentation我在 this group article 中看到了 $event .

关于javascript - AngularJS Linky过滤器停止传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247251/

相关文章:

javascript - 正向变量替换

JavaScript 类和变量作用域

javascript - Jquery点击事件堆叠

javascript - 如何隐藏onclick Action ?

javascript - Angular nvd3 sunburst 不会随着 $scope.data 更改而更新

javascript - 如何使用 Chart.js 3.x 绘制水平线?无法让它工作

javascript - 使用表单时的 Django javascript 问题

javascript - 自定义 Javascript 灯箱

javascript - for 循环内的查询无法正常运行

javascript - 让 Angular $interval 独立于 Controller 运行