使用angular-ui-router的路由中的感叹号(!)

时间:2017-05-27 19:11:50

标签: angularjs angular-ui-router

我正在开发一个项目,我将Angularjs(1.x)用作Web框架。在那个应用程序中,我需要路由,所以我使用angular-ui-router。我在我的应用程序中配置了路线并且工作正常,但路线中的感叹号(!)对我来说并不清楚,为什么这些感叹号会传到路线上。

另外,我看到了angular ui router提供的演示示例代码。在Hello World tutorial中,我观察到路线是哈希(#)但不是感叹号(!),例如:https://some_url/#/home

但在Hello Solar System tutorial路线中有哈希(#)感叹号(!),例如。 https://some_url/#!/hello

两个教程中angular ui router的配置方式相同。这就是为什么我无法理解究竟是什么在两者中产生差异。所以,我需要帮助来理解这一点。

任何有用的建议都将受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

让每个人都知道这个问题的答案,添加我从评论中理解的内容。

这种变化可以在角度版本中观察到> 1.6.x上在之前的版本中,它只是#(哈希爆炸)。 要仅以#方式获取网址,您只需以这种方式编写,

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);

此更改已在version 1.6.0中引入,您可以看到https://github.com/angular/angular.js/blob/master/CHANGELOG.md#location-due-to

另外,在这里添加的是:

  

$location hash-bang网址的哈希前缀已从空字符串“”更改为“bang”!“。如果您的应用程序未使用HTML5 mode或正在不支持HTML5 mode的浏览器上运行,并且您尚未指定自己的哈希前缀,则客户端URL现在将包含“!”字首。例如,而不是mydomain.com/#/a/b/c将成为mydomain.com /#!/ a / b / c。