我有这项服务:
myApp.factory('Auth', function() {
var user;
return {
setUser: function(aUser) {
user = aUser;
},
isLoggedIn: function() {
return (user) ? user : false;
}
}
});

我将它注入我的控制器" loginCtrl"并设置用户:
myApp.controller('loginCtrl', ['$scope', '$http', '$state', 'Auth',
function($scope, $http, $state, Auth) {
$scope.login = function() {
$http.post('/login', $scope.local).success(function(response) {
Auth.setUser($scope.local);
console.log(Auth);
console.log(Auth.user);
$state.go('news');
});
};
}
]);

Auth.setUser似乎永远不会完成它的工作,因为控制台在返回" Undefined"后立即记录。我究竟做错了什么?谢谢!
答案 0 :(得分:0)
您需要添加到Auth服务:
getUser: function () {
return user;
}
否则,您无法访问Auth服务中声明的变量,因为它们受到保护。只能通过返回对象公开的项目。
console.log("User:", Auth.getUser());