禁用内部链接上的外部元素的ng-click

Tim*_*thy 2 javascript angularjs angularjs-ng-click angular-ui-router

我有一个使用ui-router的网站,我有一张桌子,我在单元格上点击了一下,但在单元格内部有一个链接.单击链接时,我需要从单元格中禁用ng-click.

<div ng-click="click()" style="background: #d3d3d3">
  <a ui-sref="about">go to about page</a>
</div>
Run Code Online (Sandbox Code Playgroud)

当我单击此链接时,我希望它转到about页面,但不要调用click函数.这是一个plnkr:http://plnkr.co/edit/kE9CZYcYu1OPA9S0K3Jk?p = preview

这与我的实际站点略有不同,但这具有相同的行为(div而不是表).我试过添加,ng-click="$event.preventDefault()"但也没有解决它.

任何帮助表示赞赏.谢谢!

cha*_*tfl 6

防止事件在<a>冒泡到div 的标签上传播

<a ui-sref="about" ng-click="$event.stopPropagation()">go to about page</a>
Run Code Online (Sandbox Code Playgroud)

另一种方法是在点击处理程序中检查点击目标

<div ng-click="click($event)">
Run Code Online (Sandbox Code Playgroud)

JS

$scope.click = function(e){
   if( e.target.tagName ==='A'){
       return; // skip click event handler
   }
    // rest of click code
}
Run Code Online (Sandbox Code Playgroud)