我不知道这是否仍然有帮助,因为这个问题已经存在一年多了,但我最近遇到了完全相同的问题。似乎有一个关于 ngTouch 的已知错误。(https://github.com/angular/angular.js/issues/5307)
对我有用的解决方案如下:
将您的 ng-touch 文件 (angular-touch.js) 的内容替换为您可以在此处找到的文件。(这一步可能对某些人来说不是必需的,但对我来说是出于某种原因。)
然后进入文件并更改以下行:
ngTouch.directive('ngClick', ['$parse', '$timeout', '$rootElement',
function($parse, $timeout, $rootElement) {
至 :
ngTouch.directive('ngClick', ['$parse', '$timeout', '$rootElement', '$location',
function($parse, $timeout, $rootElement, $location) {
然后找到这部分:
if (!angular.isDefined(attr.disabled) || attr.disabled === false) {
element.triggerHandler('click', [event]);
}
并在其下方添加一个 if ,如下所示:
if (!angular.isDefined(attr.disabled) || attr.disabled === false) {
element.triggerHandler('click', [event]);
}
if the element has an href attribute, ensure that the url gets updated.
if (attr.href && angular.isString(attr.href)) {
$location.url(attr.href);
}
您也可以停止使用 href 并手动将您的 href 更改为 location.go() 函数,但此解决方案会为您做到这一点。