angularjs – Angular ui-router $state.go不会重定向内部解析

前端之家收集整理的这篇文章主要介绍了angularjs – Angular ui-router $state.go不会重定向内部解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的angularjs应用程序中,我正在检查用户是否登陆着陆页并且已经过身份验证,然后将其重定向到主页。
.state('landingpage',{
            abstract: "true",url: "/landingpage",templateUrl: "app/landingpage/landingpage.html",resolve: {
                AutoLoginCheck: ['$state','$window',function ($state,$window) {

                    if($window.localStorage.access_token != null)
                    {
                        if($window.sessionStorage.access_token == null) {
                            $window.sessionStorage.access_token = $window.localStorage.access_token;
                        }
                        UserInfoService.SetUserAuthenticated(true);

                        // it is not redirecting
                        return $state.go('app.home');

                    }
                }]
            }
        })

问题是虽然所有解析代码都成功运行,但用户没有被重定向到app.home。有人能说出为什么会这样吗?

注意:状态’app’也有一个解决方案,它可以获取要在’app.home’状态下显示的数据。

您的问题可以有两种解决方

>首先,您可以发出一个事件,监听器将处理您的状态转换。您可以在父控制器中的任何位置实现侦听器
>其次,您可以实现$ stateChangeStart挂钩并检查您的重定向条件

$rootScope.$on('$stateChangeStart',function (event,toState) {      
     if (toState.name === 'landingpage') {              
       if (!isAuthenticated()) { // Check if user allowed to transition                  
            event.preventDefault();   // Prevent migration to default state                  
            $state.go('home.dashboard');           
        }
      }
});

猜你在找的Angularjs相关文章