我正在尝试使用 AngularJS 1.6.0-rc.2 实现单页面应用程序,并且它继续将正斜杠格式化为其转义码%2F in我的网址。因为它没有被路线检测到。
我已经阅读了有关hashbangs的内容,并试图通过设置HTML5模式来修复它,但是网址会不断转换。
问题
1 - 为什么Angular必须做这样的事情,进行这种转换的目的是什么?
2 - 我注意到版本1.3没有这样做。我应该使用这个版本吗?
3 - 如何解决?
更多详情
我有3页和1个javascript文件
以下是我认为可能相关的 app.js 的某些部分:
$routeProvider
.when('/', {
templateUrl: 'pages/home.htm',
controller: 'homeController'
})
.when('/forecast', {
templateUrl: 'pages/forecast.htm',
controller: 'forecastController'
})
我的 index.htm 有 ng-view
home.htm 的一部分:
<a href="#/forecast" class="btn btn-primary">Get Forecast</a>
因此,当点击链接&#39;获取预测&#39; 时,我得到的网址是:
http://127.0.0.1:65381/index.htm#!/#%2Fforecast
这意味着,该网址与该路线不匹配,我仍然拥有 home.htm 内容,而不是 forecast.htm
答案 0 :(得分:1)
我从朋友那里得到了一些帮助,解决方法是在我的链接上添加&#39;!&#39; ,而不是:
<a href="#/forecast" class="btn btn-primary">Get Forecast</a>
它应该是这样的:
<a href="#!/forecast" class="btn btn-primary">Get Forecast</a>
我知道这是hashbang模式,并且已被弃用,我只是想知道如何使用Angular来正确使用它。
价: What's the shebang/hashbang (#!) in Facebook and new Twitter URLs for?
所以我现在要更新我的链接......