Javascript 页面在分配给promise后未加载Angularjs
我正在尝试使用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
.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缺少一个引号。我编辑了它。这是我键入问题时的一个打字错误。这不是我需要帮助的错误。我已更新了问题以解决此问题。谢谢