使用UI路由器导航到fromState

AngularJS UI路由器具有一个有用的参数“ fromState”,它允许我存储用户更改状态时来自何处。我正在尝试实现一个系统,如果用户进入订阅/登录/注册状态,该系统会将用户带回他们离开的地方。我捕获了fromState,它们执行操作,然后,如果设置了我的fromState var,用户将被带回到该状态。但这不起作用! 示例:

.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 /页面名称”

然后我想做这样的事情:

$state.go($rootscope.loggedFromState);

但这不起作用。状态必须是状态名称+参数,但是fromState是URL格式。如何导航到$ rootscope.loggedFromState(“ http://my-app-url/page-name”)?

pk110987 回答:使用UI路由器导航到fromState

更合适的方法是使用ui-router钩子: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);

});

然后您可以使用州名:

let from = transition.from().name;

第一次中止当前过渡:

transition.abort();

然后重定向:

$state.go(from);
本文链接:https://www.f2er.com/3081597.html

大家都在问