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

Ste*_*fan 7 javascript angularjs

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

$rootScope.$on "$locationChangeStart", (event, next, current) ->
  if doNotLeave
    event.preventDefault()
Run Code Online (Sandbox Code Playgroud)

先谢谢,Steff

Iva*_*lev 4

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