Javascript 页面在分配给promise后未加载Angularjs

Javascript 页面在分配给promise后未加载Angularjs,javascript,angularjs,Javascript,Angularjs,我正在尝试使用Angularjs创建登录脚本。我有一个身份验证服务来处理逻辑 服务内容如下: .factory("AuthSvc", ['$http','$q','$state', function ($http,$q,$state) { function GetUser() { var d = $q.defer(); $http.get('api/auth/che

我正在尝试使用Angularjs创建登录脚本。我有一个身份验证服务来处理逻辑

服务内容如下:

    .factory("AuthSvc",
        ['$http','$q','$state',
          function ($http,$q,$state) {
            function GetUser() {
                var d = $q.defer();
                $http.get('api/auth/check')
                .success(function(res){
                d.resolve(res);
                });
                return d.promise;
            };
        return {
        login: function (credentials, form) {
             var defer = $q.defer();
             $http.post('/api/auth/login', credentials)
             .success(function (response) {
                form.$setPristine();
                user = response;
                $state.go('base.posts.content');
                defer.resolve();    
             })
             .error(function (response) {
                defer.reject();
             });
             return defer.promise;
        },

        isLoggedIn: GetUser,

        user: null 
};
        }]);
我有一个resolve属性和一个user属性的侦听器来更新应用程序配置上的视图,如下所示:

.config(['$stateProvider', 
          function ($stateProvider) {                          
            // Now set up the states
            $stateProvider
                .state('base', {
                        url        : "",
                        templateUrl: "/templates/base/index.html",
                        resolve    : {user : ["AuthSvc",    
                            function(AuthSvc)  {
                                return AuthSvc.user;
                            }]
                    },
                })
                .state('base.login', {
                        url        : "login",
                        templateUrl: "/templates/login/index.html",
                        controller : 'LoginCtrl'
                })                    
                .state('base.posts', {   
                        abstract   : true,
                        url        : 'posts',
                        templateUrl:  '/templates/posts/posts.html'

               })
              .state('base.posts.content',{
                      url: '',
                      resolve: {    
                          posts: function (PostsSvc) {
                            return PostsSvc.getPosts();
                          }
                      },
                      views:{
                          'create': { 
                             templateUrl: '/templates/posts/create.html',
                             controller: 'PostsCtrl'
                      },
                        'list': {
                             templateUrl: '/templates/posts/list.html',
                             controller: 'PostsCtrl'
                        }
                     }    
            });

    }]);

    app.run(['$rootScope','AuthSvc','$state',
            function ($rootScope,AuthSvc,$state,
                ) {
                    $rootScope.$state = $state;
                    $rootScope.$stateParams = $stateParams;

                    $rootScope.$on('$stateChangeStart', 
                        function(event, next, current){                     
                            AuthSvc.user =  AuthSvc.isLoggedIn();
                        }); 

                    $state.transitionTo('base.posts.content');

                    }]);
}());

“$stateChangeStart”上的$rootScope.com不工作。我看到一些代码,人们直接给承诺赋值,而不使用承诺的then函数。如何使用此代码完成此操作?

$state in app.run['$rootScope','AuthSvc',$state缺少一个引号。我编辑了它。这是我键入问题时的一个打字错误。这不是我需要帮助的错误。我已更新了问题以解决此问题。谢谢