ui-router& angular 1.5:浏览器后退按钮触发$ stateChangeStart两次并修改历史记录

时间:2016-10-13 16:02:39

标签: javascript angularjs angular-ui-router

我正在使用角度为1.5的ui-router。

我有这个问题,当我按下浏览器BACK按钮,而不是以线性方式返回时,它按照奇怪的顺序。

例如:

setOne: abstract
    State1: setOne.Result
    State2: setOne.Availability

setTwo: abstract
    State3: setTwo.Sim
    State4: setTwo.Boost

    Page order is : State1 > State2> State3 > State4
  • 现在假设我从State1开始并继续浏览到setTwo.Boost (最后一个州)&按浏览器后退按钮,地址栏闪烁,和 浏览器加载State3。

  • 之后,如果我再次按“返回”按钮,那么理想情况下应该去 到State2然而它再次进入State4。

所以预期的历史行为应该是:

State4 > State3 > State2 > State 1

实际行为:

State4 > State3 > State4> State2> State3 > State2 > State 1

我可以看到,当按下浏览器中的Back按钮时,$ stateChangeStart被调用两次。地址栏中的URL来回闪烁,看起来是额外的历史记录条目会显示在后退按钮历史记录中。这将浏览器历史记录中最后查看的页面修改为我点击后退按钮的当前页面。

我遇到了类似的问题https://github.com/angular-ui/ui-router/issues/1780,但无法解决如何解决此问题。

它只会让我发疯,我哪里出错了?

我在这里配置错误的任何建议。

0 个答案:

没有答案