Angularjs ui路由器拒绝解决如何避免加载模板

Angularjs ui路由器拒绝解决如何避免加载模板,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有这个密码 //Setting up route angular.module('my') .config(['$stateProvider',function($stateProvider) { // Check if the user is just logged var checkLoggedOut = function($http) { /* if the user is just logged the server s

我有这个密码

//Setting up route
angular.module('my')
    .config(['$stateProvider',function($stateProvider) {
        //  Check if the user is just logged
        var checkLoggedOut = function($http) {
            /* if the user is just logged the server send a Forbidden status 403*/
            return $http.get('/loggedout');
        };
        //  Check if the user is logged
        var checkLoggedIn = function($http) {
            return $http.get('/loggedin');
        };

        // states for my app
        $stateProvider
            .state('user', {
                abstract: true,
                templateUrl: 'users/views/index.html',
                resolve: {
                    loggedin: checkLoggedIn
                }
            })
            .state('user_register', {
                url: '/user/register',
                templateUrl: 'users/views/register.html',
                resolve: {
                    loggedin: checkLoggedOut
                },
                controller:'UserRegisterCtrl'
            });
    }
    ]);
如果用户刚刚登录,则无法转到状态用户注册

但模板仍在加载中

这是通缉犯的行为吗

有办法避免吗

使现代化 也许我的问题会被误解

我想知道,如果解析被拒绝,是否有办法避免加载模板我的意思是,为什么在解析被拒绝时加载模板?如果解析失败,则不应加载模板

到头来
首先,进行REST调用以检查用户是否在每次状态转换时都登录,这可能会很昂贵。最好将用户的状态存储在浏览器中

第二,关于您要问的问题:您可以创建一个事件处理程序来侦听$stateChangeStart事件。在此处理程序中,您可以检查用户是否已登录,以及他们是否能够访问状态


此链接应有助于

您的checkLoggedIn功能必须管理用户未经身份验证的情况。它可以使用$state.go或$location将他重定向到相应的状态。

mmm我不是问如何做,而是问如果解析被拒绝,到底为什么会加载模板,以及是否有办法避免我给你的抱歉-1
.factory('httpInterceptor', ['$q','$location',function ($q, $location) {
        return {
            'response': function(response) {
                if (response.status === 401) {
                    $location.path('/signin');
                    return $q.reject(response);
                }
                if (response.status === 403) {
                    $location.path('/');
                    return $q.reject(response);
                }
                return response || $q.when(response);
            },
            'responseError': function(rejection) {
                if (rejection.status === 401) {
                    $location.path('/signin');
                    return $q.reject(rejection);
                }
                if (rejection.status === 403) {
                    $location.path('/');
                    return $q.reject(rejection);
                }
                return $q.reject(rejection);
            }

        };
    }