在IE9中,我的角度路由不起作用,它将我重定向到'#'#标签之前的任何内容。
mysite.com /#/ info - > mysite.com
即使我从URL手动删除/#并再试一次,我仍然会被重定向。
它将'#'附加到我的网址,因为html5模式在浏览器支持时使用历史记录API,并且在不支持时会回退到'hashbang'(#)(如IE9)。
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise("/");
$stateProvider
.state('statistics', {
url: "/path/:myId",
templateUrl: '../some/path/site.html',
controller: 'Ctrl'
}
);
一直在寻找各种解决方案,例如:
但他们都不适合我。
我正在寻找解决方案,而无需停用html5mode。任何人都遇到类似的问题,并设法修复?
答案 0 :(得分:0)
在HTML5模式下,有三种情况不会重写A标记:来自angular docs - 1包含目标属性的链接。示例:链接 2指向不同域的绝对链接示例:link 3以“/”开头的链接,在定义base时导致不同的基本路径示例:link
您可以尝试使用这样的全局指令,将target ='_ self'添加到没有目标的所有链接。
myApp.directive('a', [function () {
return {
restrict: 'E',
link: function (scope, element, attrs) {
if (!attrs['target']) {
element.attr('target', '_self');
}
}
}
}]);