[英]Use UI-router to navigate to fromState
AngularJS UI-router 有一个有用的参数“fromState”,它允许我存储用户在更改 state 时来自哪里。 我正在尝试实现一个系统,如果用户被带到订阅/登录/注册 state,则该系统会将用户带回他们离开的地方。 我捕获 fromState,他们执行操作,然后如果我的 fromState 变量被设置,用户将被带回 state。 但它不起作用:示例:
.run(function ($rootScope, $state, $timeout, $location, $anchorScroll) {
$rootScope.$on('$locationChangeSuccess', function (event, toState, fromState) {
$rootScope.loggedFromState = fromState;
console.log($rootScope.loggedFromState);
输出“http:// my-app-url /page-name”
然后我想做这样的事情:
$state.go($rootScope.loggedFromState);
但这不起作用。 state 必须是 state 名称 + 参数,但 fromState 是 URL 格式。 如何导航到 $rootScope.loggedFromState (" http://my-app-url/page-name ")?
更合适的方法是使用 ui-router hooks: https://ui-router.github.io/guide/transitionhooks
$transitions.onStart({}, function(transition) {
console.log(
"Transition from " + transition.from().name +
" to " + transition.to().name
);
let from = transition.from().name;
// validation
// if validation fails abort transition
transition.abort();
// and redirect somewhere else
$state.go(from);
});
然后可以取 state 名称:
let from = transition.from().name;
首先中止当前转换:
transition.abort();
然后重定向:
$state.go(from);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.