AngularJs和HTML 5历史API无法正常工作

时间:2014-06-11 11:17:34

标签: javascript html5 angularjs html5-history

我在使用带有Angular的HTML 5 History API时遇到问题:

    Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["fn: $locationWatch; newVal: 8; oldVal: 7"],["fn: $locationWatch; newVal: 9; oldVal: 8"],["fn: $locationWatch; newVal: 10; oldVal: 9"],["fn: $locationWatch; newVal: 11; oldVal: 10"],["fn: $locationWatch; newVal: 12; oldVal: 11"]]

然后我搜索了解决方案,并且我发现这是已知问题。只有"解决方案"我设法找到了,包括在setTimeout函数中的历史API,smth。像这样:

setTimeout(function() {
            history.pushState({}, "progress", url);
        },1000);

一位用户提到这也适用于他:

$browser.url( state.url );
history.replaceState({}, state.title, state.url );

但我没有运气。 $ browser是Angular的私有API,$ location使用,有趣的是,如果我做的话。像这样:

  var url = $browser.url() + "/progress";
  $browser.url(url,true);
  console.log(window.location.href);

我的新网址已被记录,但我看不到地址栏中的更改,即显示$ browser.url()。 (在Chorme中,这个程序会暂时显示,然后消失)

这可能是由于我的服务器端路由配置吗? (我使用ASP.net MVC)。

我的问题是,除了setTimeout之外,有没有人有$浏览器运气或找到解决这个问题的方法?

0 个答案:

没有答案