$transitions 中 $routeChangeStart 中 next 的等价物是什么

What is Equivalent of next in $routeChangeStart in $transitions

我正在 angularjs 中构建基于权限的访问控制应用程序。我想要 $transitions 中的参数相当于 $routeChangeStart.

中的 'next' 参数
  function ($rootScope, $state, $transitions, LoginService) {
        console.log('------------------in app.js run');
        $state.go('login');
        $transitions.onStart({}, function ($transitions) {
                var newToState = $transitions.$to();
                if(checkPermissionForView(// param similar to next))
        });

    }

我定义了一个服务,用于检查登录用户是否有权访问视图

  checkPermissionForView : function (view) {
                if (!view.requiresAuthentication) {
                    return true;
                }

                return userHasPermissionForView(view);
            }

  userHasPermissionForView : function(view){
                if(!isLoggedIn()){
                    return false;
                }
            }

  isLoggedIn : function () {
                var user = JSON.parse(localStorage.getItem("user"));
                console.log(user);
                return user != null;
            }

如您所见,我想将 'next' 信息传递给服务。 $transitions.$to() 是否产生与 $routeChangeStart('next') 中的 next 相同的结果? 我是新来的。 TIA

是的,使用Transition.to()获取将被激活的状态。

有关详细信息,请参阅 docs for the Transition class

function ($rootScope, $state, $transitions, LoginService) {
        console.log('------------------in app.js run');
        $state.go('login');
        $transitions.onStart({}, function (transition) {
                var newToState = transition.to();
                if(!checkPermissionForView(newToState)) {
                         return $state.target('login');
                }
        });
}

...

checkPermissionForView : function (state) {
                if (!state.requiresAuthentication) {
                    return true;
                }

                return userHasPermissionForState(state);
            }

  userHasPermissionForState : function(view){
                if(!isLoggedIn()){
                    return false;
                }
            }

  isLoggedIn : function () {
                var user = JSON.parse(localStorage.getItem("user"));
                console.log(user);
                return user != null;
            }

我强烈推荐阅读 Transition Hooks Guide