AngularJS 1.2.0(但较低版本有相同的问题)
我有一个带有一些小部件的Web应用程序,并希望将其状态保存到URL中.我现在用$location.hash('param1=1¶m2=678')命令做这个.但我得到的网址是:domain.com/##param1=1¶m2=678
它工作正常,我可以恢复我的应用程序的状态.我遇到的一个问题是,当有人点击这样的链接时,例如,邮件应用程序,他们的浏览器使用/ 23编码其中一个哈希,因此我的应用程序出错了.我怎么解决这个问题?谢谢
这是插件:http://plnkr.co/edit/VVjEUzROou6hu8B8sURa? p =preview 您需要在新窗口中打开它才能测试哈希值
对于angular中的标准哈希位置,您可以使用
location.path("myappstate/1");
Run Code Online (Sandbox Code Playgroud)
因为angular设置为将第一个哈希状态视为应用程序的主要URL或路径.location.hash()在主哈希状态(路径)上设置二级哈希
这不是最好的答案,但您可以尝试注入 $locationProvider 并设置:
$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
这样 Angular 在 HTML5 模式下运行,并且不使用 hashbang。我推荐这个问题以获取更多信息。