使用angularjs的路由时,会与锚点冲突,导致页面锚点不可用
解决方法
方法一:添加如下配置
config(["$locationProvider", function ($locationProvider) {
$locationProvider.hashPrefix("");
$locationProvider.html5Mode({
rewriteLinks: false
});
}]);
此配置不会重写url,也就是说url仍会以#的形式访问页面,虽然锚点可用,但不会在url中体现锚点,不明白的话可以与方法二对照
方法二:修改方法一中的配置
.config(["$locationProvider", function ($locationProvider) {
$locationProvider.hashPrefix("");
$locationProvider.html5Mode(true);
}]);
此方法必须在html的header中添加项目根路径
<base href="/sdk/" />
此时页面url将不再以#的形式出现,下图的#aaa是锚点名,而此锚点名不会在方法一中的url里面展示

本文介绍在使用AngularJS路由时遇到的锚点冲突问题及两种解决方法。方法一通过配置$locationProvider保持URL以#形式访问,确保锚点可用但不显示在URL中。方法二启用html5Mode,去除URL中的#,需在HTML头部添加基路径。
1107

被折叠的 条评论
为什么被折叠?



