2014-09-25 44 views
0

我的应用中的某些状态需要进一步的身份验证。例如编辑状态应该提示用户输入一次性密码。

我很高兴能够水平解决此问题:将元数据附加到需要额外身份验证的状态(即state.requiresExtraAuth:true),并在状态更改事件上插入一些模态逻辑。注:我所追求的是状态确实加载并且用户可以看到它,但是模式禁止用户继续输入密码。

我试着添加一个'onEnter'属性到我在事件监听器函数中获取的toState对象参数中,但它没有工作:)。

是这样的可能/你会怎么去设计这个用例呢?

+0

也许[this](http://stackoverflow.com/a/25197497/1679310)或[that](http://stackoverflow.com/a/24725180/1679310)可以帮助... – 2014-09-25 10:05:29

+0

编辑我的问题更具体一点:我所追求的是状态确实加载并且用户可以看到它,但是一种模式禁止用户继续而不输入密码 – 2014-09-25 12:07:39

回答

0

run你申请的方法。

add.run(function($rootScope, $state, $modal){ 
    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ 
     if(toState.name != 'app.home') { 
      $state.go('app.login'); 
      // or open modal 
      $modal.open({...}); 
     } 
    }); 
}); 

这个事件将帮助你检查什么状态的用户尝试访问并重定向到登录表单,如果需要的话。