Angular - 从Interceptor导航到命名状态

时间:2015-09-17 16:48:27

标签: angularjs routing

This my main module definition:
$rootScope.$on('unauthorized', function () {       
    $state.go('login');
});
.config(
function ($stateProvider, $logProvider, $httpProvider) {
    $logProvider.debugEnabled(true);
    // main application area //
    $stateProvider
        .state('body', {
            url: '/',
            template: '<div ui-view />'
        });
    $stateProvider
    .state('login', {
        url: '/login',
        templateUrl: 'login.html',
        controller: 'LoginController',
    });
    $httpProvider.interceptors.push('APIInterceptor');
 });

拦截器定义:

service('APIInterceptor', function($rootScope) {
    // Just for testing
     $rootScope.$broadcast('unauthorized');
}

不是这样的: $ state.go( '登录');并且看起来它正在循环,直到Chrome失败页面。没有$ state.go('login');代码运行正常但我需要在未经授权的情况下打开登录页面。我的问题是如何导航到登录状态?

由于

1 个答案:

答案 0 :(得分:2)

试试这个

$rootScope.$on('unauthorized', function ($state) {       
    $state.go('login');
});