ngTouch模块防止从href属性重定向到url
ngTouch module prevent redirect to url from href attribute
我的应用程序在移动设备上出现了问题。像这样:
<a href="#!/kategori/hva-skjer" ng-click="toggleMenu()">
这是菜单中的一个链接。我想要的和在dekstop上运行良好的是关闭菜单并从href
属性重定向到适当的url。
这不会在移动设备上工作(在chrome devtools的模拟器上也是)。它在切换菜单,但没有重定向。
当我从应用程序引导文件中的依赖项中删除ngTouch
模块时,问题就消失了。
在你的开发工具中启用触摸模拟和点击链接。如你所见,toggle
函数工作时,链接没有。
http://plnkr.co/edit/1TldHkHvVfo4OmH7MLk4?p =预览
我不知道这是否仍然有帮助,因为这个问题已经有一年多了,但我最近看到了完全相同的问题。似乎有一个关于ngTouch的已知bug。(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()函数,但此解决方案可以为您完成此操作。
这是一个老bug,在此之前没有修复。Href和ng-click不能一起工作。
下面您将看到如何避免此错误。https://stackoverflow.com/a/34612541/4245233相关文章:
- http/rxjs catch回调中的Angular 2重定向导致TypeError:无法读取属性'订阅'
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 使用Javascript重定向并设置请求属性
- “拒绝影子本机属性的权限”使用 location.replace 在 JavaScript 中重定向
- 如何使用操作属性发送 html 表单数据而不重定向到另一个页面
- 在 mvc 应用程序中使用 href 属性重定向 asp.net 不起作用
- 如何添加属性以 go.js 节点和重定向
- 使用 HTML5 Ajax 表单属性不适用于 ASP.NET MVC,仍被重定向到 Action URL
- 是否可以制作检查css属性和重定向页面的脚本
- jQuery-在重定向到页面后更改页面的属性
- 重定向至具有PHP属性的初始HTML页面
- 会话属性在调用客户端重定向后丢失
- 为什么页面在没有完成表单的情况下被重定向到one in action属性
- 访问flash重定向属性(thymeleaf, springmvc)时出现Javascript错误
- 如何隐藏基于src 301重定向URL属性的图像
- Javascript如何切换窗口的路径名.Location属性和重定向
- 如何将额外的req.body属性添加到实际的post请求中,然后用express重定向
- 如何在不重定向的情况下使用空的href属性
- 将JavaScript标记's src属性在所有浏览器中都遵循HTTP重定向
- ngTouch模块防止从href属性重定向到url