我正在开发一个项目,我将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
的配置方式相同。这就是为什么我无法理解究竟是什么在两者中产生差异。所以,我需要帮助来理解这一点。
任何有用的建议都将受到赞赏。
谢谢!
答案 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。