javascript - Angular 应用程序中的超链接需要 #!而不仅仅是#

标签 javascript angularjs ngroute

如果我指定如下路径,则使用 anchor 标记在路线之间导航将不起作用-

<a href="#/link1">Go to link1</a>

相反,如果我指定以下路径,它就可以工作

<a href="#!/link1">Go to link1</a>

使用 AngularJS 1.6.1 版本。浏览器IE 11.0。为什么会有这种行为?我之前使用过AngularJS 1.2 -1.3版本,但之前没有遇到这个问题。

最佳答案

在配置函数中使用 $urlRouterProvider.rule 对 url 进行一些转换,如下所示:

$urlRouterProvider.rule(function ($injector, $location) {
    var path = $location.path(),
        normalized = path.replace('!/', '');
        if (path !== normalized) {
            return normalized;
        }
});

您可以点击以下链接,

Angular force an undesired exclamation mark in url

angular url is adding unwanted characters

关于javascript - Angular 应用程序中的超链接需要 #!而不仅仅是#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41430121/

相关文章:

javascript - 尝试使用 javascript 对我的 html 中的列表进行排序

javascript - 如何避免 AngularJS 页面抖动

javascript - 在 Angularjs 中循环 ng-options

javascript - Angularjs ngRoute 不工作

javascript - 如何在angular js中更改 Controller 的 View ?

javascript - 表单 ng-submit 加载 subview ,但仅加载一次

javascript - Babel 7 失败,单个插件显示 "Duplicate plugin/preset detected."

javascript - React-aad-msal 清除本地存储。传递状态

javascript - Node js 中的关闭未按预期工作

javascript - 应该不用 jQuery 学习 angularjs 吗?