Javascript ngTouch模块阻止从href属性重定向到url
我在移动设备上的应用程序出现问题。我有这样的想法:Javascript ngTouch模块阻止从href属性重定向到url,javascript,angularjs,angularjs-ng-touch,Javascript,Angularjs,Angularjs Ng Touch,我在移动设备上的应用程序出现问题。我有这样的想法: <a href="#!/kategori/hva-skjer" ng-click="toggleMenu()"> 我不知道这是否仍然有用,因为这个问题已经有一年多的历史了,但我最近也遇到了同样的问题。似乎有一个已知的关于ngTouch的bug。() 对我有效的解决方案如下: 将ng touch文件(angular touch.js)的内容替换为您可以找到的文件。(这一步对某些人来说可能不是必需的,但对我来说却是出于某种原因。) 然
<a href="#!/kategori/hva-skjer" ng-click="toggleMenu()">
我不知道这是否仍然有用,因为这个问题已经有一年多的历史了,但我最近也遇到了同样的问题。似乎有一个已知的关于ngTouch的bug。()
对我有效的解决方案如下:
将ng touch文件(angular touch.js)的内容替换为您可以找到的文件。(这一步对某些人来说可能不是必需的,但对我来说却是出于某种原因。)
然后进入文件并更改以下行:
ngTouch.directive('ngClick', ['$parse', '$timeout', '$rootElement',
function($parse, $timeout, $rootElement) {
致:
然后找到这部分:
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并手动将hrefs更改为location.go()函数,但此解决方案可为您做到这一点。这是一个旧错误,在此之前尚未修复。Href和ng click不能一起工作
下面您将看到如何避免此错误
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);
}