href和ng-click。我的猜测是touch
正在打破这个。
示例:
<a href="/" ng-click="playSound()"> link </a>
-OR -
<div ng-click="playSound()">
<a href="/"> link </a>
</div>
href和ng-click都在桌面视图中调用,但仅使用移动设备触摸调用playSound()
。
我想要实现的目标:我希望能够链接到下一页并在触摸时调用playSound()函数。目前,ng-click在触摸时覆盖href,我从未链接到下一页。
答案 0 :(得分:2)
我遇到了同样的问题并找到了答案here。
简而言之,您可以拥有多个具有相同名称的指令,并且两个指令在调用时都会运行。这允许您编写一个自定义指令,也称为ng-click
,它需要的工作量少于遍历所有链接并将重定向移动到ng-click
调用的函数。
以下是代码:
angular.module('ngClick', function( $location ) {
return {
link: function(scope, elem, attrs) {
if(attrs.href) {
elem.on('touchend', function() {
$location.path(attrs.href);
});
}
},
priority: 1
};
});
对我来说,将重定向移动到我的函数并使用$location
重定向页面非常简单:
$location.path('www.my-link.com');