Angular ui-router:离开特定页面时警告用户

时间:2015-09-15 14:07:27

标签: javascript angularjs angular-ui-router

在我的角度应用中,我需要在离开 特定页面之前警告用户,而不是每个页面。

如果我在页面的控制器中使用$locationChangeStart我要警告用户,即使进入页面也会触发,这是不可取的。

如果我在父控制器上使用它,它将在任何地方触发,我必须添加复杂的if / else或switch结构,基本上告诉它永远不会触发,除非用户放弃该特定状态。

如何使用UI路由器检测用户实际离开(并且仅离开)特定state

1 个答案:

答案 0 :(得分:4)

你应该使用一个事件(并在你自己的监听器上挂钩)

$stateChangeStart

  

状态转换开始时触发。您可以使用event.preventDefault()来防止转换发生,然后转移承诺将被拒绝,并且会阻止“转换”。值。

     

...

     

示例:

$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
    event.preventDefault();
    // transitionTo() promise will be rejected with
    // a 'transition prevented' error
})

这个Q& S中有一个详细的解释和工作的插件。答: