Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ui路由器:如何在转换中获取下一个状态参数_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript Ui路由器:如何在转换中获取下一个状态参数

Javascript Ui路由器:如何在转换中获取下一个状态参数,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我使用的是ui路由器1.0.0.beta.3。如何在转换期间获取下一个状态的路由参数 index.run.js $transitions.onStart({ to: '**' }, verifyAuth); function verifyAuth(trans) { let nextState = trans.$to(); if (Auth.verify(nextState.authGroup) === -1) { return $state.go('login',

我使用的是ui路由器1.0.0.beta.3。如何在转换期间获取下一个状态的路由参数

index.run.js

$transitions.onStart({ to: '**' }, verifyAuth);

function verifyAuth(trans) {
  let nextState = trans.$to();
  if (Auth.verify(nextState.authGroup) === -1) {      
    return $state.go('login', { nextState: nextState.name, nextParams: nextState.params}); // this doesn't work
  }
}
我想存储它们,以便在身份验证成功后,将用户重定向到他试图访问的状态+状态参数

login.component.js

let nextState = this.$stateParams.nextState;
let nextParams = this.$stateParams.nextParams;
$state.go(nextState, nextParams);

你问题的答案是


但是,我建议研究如何执行身份验证检查和登录重定向:

此钩子通过返回
$state.target('login')

在登录状态下,确定“登录后返回的状态”。它使用
transition.redirectedFrom()
检查原始转换的目标


回答得很好,但作为补充,如果您的遗留项目无法一次性处理那么多重构,那么在1.0.5版本中,我发现我可以使用
trans.$to()
trans.$from()
作为替代品。希望我能在某个时候再次重构它,以符合示例应用程序的策略。
function verifyAuth(trans) {
  let nextState = trans.to();
  let nextParams = trans.params();
  if (Auth.verify(nextState.authGroup) === -1) {      
    return $state.go('login', { nextState: nextState.name, nextParams: nextParams});
  }
}