AngularJS 1.2.0(但低版本也有同样问题)
我有一个带有一些小部件的网络应用程序,并希望将它们的状态保存到 URL 中。
我现在用 $location.hash('param1=1¶m2=678')
做这件事命令。但我得到的网址如下:domain.com/##param1=1¶m2=678
它工作正常,我可以恢复我的应用程序的状态。我遇到的一个问题是,当有人在例如邮件应用程序中单击这样的链接时,他们的浏览器会使用/23 对其中一个哈希值进行编码,因此我的应用程序出错了。我该如何解决这个问题?谢谢
这是 plunk:http://plnkr.co/edit/VVjEUzROou6hu8B8sURa?p=preview
您需要在新窗口中打开它才能测试哈希
最佳答案
对于 Angular 中的标准哈希位置,您可以使用
location.path("myappstate/1");
因为 angular 设置为将第一个哈希状态视为应用程序的主要 url 或路径。 location.hash() 在主散列状态(路径)上设置辅助散列
关于url - angularjs $location.hash 使##,但我需要#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19252772/