如何在我的URL中处理AngularJS格式化正斜杠以转义代码%2F

时间:2016-12-07 03:56:27

标签: javascript angularjs url escaping

我正在尝试使用 AngularJS 1.6.0-rc.2 实现单页面应用程序,并且它继续将正斜杠格式化为其转义码%2F in我的网址。因为它没有被路线检测到。

我已经阅读了有关hashbangs的内容,并试图通过设置HTML5模式来修复它,但是网址会不断转换。

问题

1 - 为什么Angular必须做这样的事情,进行这种转换的目的是什么?

2 - 我注意到版本1.3没有这样做。我应该使用这个版本吗?

3 - 如何解决?

更多详情

我有3页和1个javascript文件

  • 的index.htm
  • home.htm
  • forecast.htm
  • app.js

以下是我认为可能相关的 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

1 个答案:

答案 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?

所以我现在要更新我的链接......