event.preventDefault()时,“$ locationChangeStart”上的Angular JS $触发两次

时间:2014-03-27 11:00:54

标签: javascript angularjs

我正在尝试在Angular JS中收听$ on $“locationChangeStart”事件,并防止在某些情况下发生事件。 一旦我执行event.preventDefault(),$ on $“locationChangeStart”事件就会再次被触发。 这是一个Angular JS Bug吗?

$rootScope.$on "$locationChangeStart", (event, next, current) ->
  if doNotLeave
    event.preventDefault()

提前致谢, Steff

1 个答案:

答案 0 :(得分:4)

哦,我已经看到了非常相似的情况,并找到了一个可能的原因。 Angular(或我们的自定义路由段路由,不确定哪个)有时会在路由处理后修剪URL。 尝试记录nextcurrent并查看您正在处理的路线。在我们的例子中,更改是从http://wof/Admin#/someRoutehttp://wof/Admin#/someRoute/(通知添加了斜杠)。在我们考虑到这一点之后 - 它运作正常。