AngularJS 服务没有正确设置数据
AngularJS service not setting data correctly
我有这项服务:
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 似乎从来没有完成它的工作,因为控制台在 return "Undefined" 之后立即记录。我究竟做错了什么?谢谢!
您需要添加到您的身份验证服务:
getUser: function () {
return user;
}
否则,您无法访问在您的 Auth 服务中声明的变量,因为它们是受保护的。只有您通过 return 对象公开的项目才可以访问。
console.log("User:", Auth.getUser());
我有这项服务:
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 似乎从来没有完成它的工作,因为控制台在 return "Undefined" 之后立即记录。我究竟做错了什么?谢谢!
您需要添加到您的身份验证服务:
getUser: function () {
return user;
}
否则,您无法访问在您的 Auth 服务中声明的变量,因为它们是受保护的。只有您通过 return 对象公开的项目才可以访问。
console.log("User:", Auth.getUser());