我的应用中的某些州需要进一步验证。例如,编辑状态应该提示用户输入一次性密码。
我很乐意横向解决这个问题:将元数据附加到需要额外auth的状态(即state.requiresExtraAuth:true),并在状态更改事件上插入一些模态逻辑。注意:我所追求的是状态确实加载并且用户可以看到它,但是模式禁止用户在不输入密码的情况下继续。
我尝试添加一个' onEnter'我在事件监听器函数中获取的toState对象参数的属性,但它没有工作:)。
这样的事情是可能的/您将如何设计此用例?
答案 0 :(得分: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({...});
}
});
});
此事件将帮助您检查用户尝试访问的状态,并在需要时重定向到登录表单。