在<a>元素中优先处理ngclick over nghref

Phi*_*mas 5 javascript angularjs angular-routing angularjs-ng-click angularjs-ng-href

tl; dr:如何强制angular只在<a>元素中执行ngclick指令而不清空/删除href

我的网站在某些元素上有一些自定义行为(模态打开,位置栏更新等)但是对于SEO索引我需要它是一个包含有效链接<a>href属性的元素.

如:

<a href="/{{item.url}}" ng-click="doCustomStuff(item)">some link</a>
Run Code Online (Sandbox Code Playgroud)

但是,angular也会执行,href并且路由使我的自定义ng-click逻辑无用.

有没有办法扭转这种行为?

Goo*_*off 11

你应该将$event参数传递给onclick函数并执行e.preventDefault()方法;

<a ng-click="clickHandler($event)" href="/home" >home</a>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

$scope.clickHandler = function(e){
   e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

例:

http://plnkr.co/edit/sKHST3GkRENtxptxr0mK?p=preview