【发布时间】:2014-01-18 18:35:16
【问题描述】:
我们正在使用 angularJS 和 angular ui-router,并希望更改地址栏中的 URL,但保持视图/状态相同。
我曾尝试使用历史推送状态,但与它发生冲突会导致 $digest 无限循环。
我也尝试过sync() https://github.com/angular-ui/ui-router/wiki/Quick-Reference#urlroutersync 中描述的方法——本质上是在$locationChangeSuccess 上调用preventDefault。但是,这似乎不起作用 - 正如这个 plunkr 所证明的那样:http://plnkr.co/pLC2Ai
有人知道这个问题的任何解决方案吗?
【问题讨论】:
-
当我点击 Route 1 时,它会变为状态 1,Route 2:状态 2。什么不起作用,它应该做什么?
-
它不应该显示状态(与现在相比)。我刚刚更新了 plunker,因此您可以看到 $location.path() 并且我希望看到的操作不是更改状态而是更改路径。
-
更改部分后,您的字面意思是您在 plunker 中看到的 URL 吗?因为您应该检查运行 run.plnkr.co/plunks/pLC2Ai 的代码的 iframe
-
是的,这就是我的意思,也是的,我检查了 iframe
-
对我来说,这是完美的答案:stackoverflow.com/a/24102139/1309218
标签: javascript angularjs angular-ui angular-ui-router