如何使用AngularJS的HTML5模式启用到URL的哈希导航?

时间:2015-11-03 05:42:53

标签: javascript angularjs html5 hash url-routing

我在AngularJS应用程序中启用了html5mode,因此我可以使用URL格式site.com/path而不是site.com/#/path访问路径。

但启用html5mode后,导航到哈希不能正常工作。当我通过Chrome导航到site.com/#hash时,网址会自动更改为site.com/hash。由于hash不是服务器上的资源,因此此网址会导致加载默认的index.html文件,而不是滚动到hash位置。

这似乎是一个非常简单的用例,但是如何使URL格式site.com/#hash与AngularJS一样正常工作?

1 个答案:

答案 0 :(得分:0)

我得到了以下工作:

从文档页面引用:

  

请注意,在IE9中解析具有$ location的相对路径时,删除标记的要求会产生不良副作用。

总结一下,Angular只会在中保留中的哈希片段

  • html5mode已启用,
  • 已设置哈希前缀
  • 并且您在启用html5mode
  • 时未设置requireBase:false

难怪人们发现很难掌握AngularJS:文档很薄弱,框架就像一个魔术黑盒子,可以控制你的应用程序远离你。