【发布时间】:2013-12-18 13:26:12
【问题描述】:
我正在尝试将我的应用程序中的 url 从“http://www.test.com/foo”更改为“http://www.test.com/bar+someVariable”(某些变量是我从 bar 控制器内的 http 请求收到的字符串) history.pushState() 。在我的路线中,我启用了 html5mode 并且一切正常。我还使用 location.path() 按照文档中的说明在视图和控制器之间切换。现在,一旦应用程序切换视图和控制器,我将 history.pushState(null,null,"/bar"+somevariable) 添加到“/bar”的控制器。一切正常,并且 url 已更新,但在控制台中我收到“已达到 10 个 $digest() 迭代。中止!”错误。我怀疑激活 history.pushState 函数会以某种方式干扰 angular 的 $location 或 $route 服务。
在没有收到 $digest 错误的情况下,在 Angular 中使用 history.pushState() 的正确方法是什么?
顺便说一下,我使用的是 angular 1.0.3
谢谢你, 吉顿
【问题讨论】:
-
当我使用动态包含和动态添加的控制器做一些花哨的事情时,我遇到了同样的问题。尽管一切正常,但我一使用,
pushState一切都搞砸了。
标签: html angularjs url pushstate