在我的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'); } }] } })
您的问题可以有两种解决方案
>首先,您可以发出一个事件,监听器将处理您的状态转换。您可以在父控制器中的任何位置实现侦听器
>其次,您可以实现$ 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'); } } });