在<a> elements</a>中优先点击ng vs ng href

时间:2014-03-19 11:42:12

标签: javascript angularjs angular-routing angularjs-ng-click angularjs-ng-href

tl; dr :如何强制角度只执行<a>元素中的ngclick指令而不清空/移除href

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

如:

href

但是,angular也会执行<a href="/{{item.url}}" ng-click="doCustomStuff(item)">some link</a> ,并且路由使我的自定义href逻辑失效。

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

1 个答案:

答案 0 :(得分:11)

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

<a ng-click="clickHandler($event)" href="/home" >home</a>

并在控制器中:

$scope.clickHandler = function(e){
   e.preventDefault();
}

示例:

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