【发布时间】:2014-05-09 09:11:28
【问题描述】:
我在此基础上构建了一个带有用户身份验证的简单应用程序:link
基本上,我有一个 userAccountService,负责与处理登录过程的服务器和登录控制器通信。
从其他控制器我想检查用户是否已经登录(隐藏登录按钮,并显示用户配置文件)。
所以我有一个导航控制器
function navCtrl ($scope, $modal, userAccountService) {
$scope.IsUserLoggedIn = function () {
return userAccountService.isUserLoggedIn;
}
}
所以在 HTML 中我使用 ng-hide="isUserLoggedIn()
我的用户帐户服务:
app.factory('userAccountService', ['$http', '$q', userAccountService]);
function userAccountService($http, $q) {
var service = {
registerUser: registerUser,
loginUser: loginUser,
logOut: logOut,
getValues: getValues,
isUserLoggedIn: false,
accessToken: ""
};
// code ommited
function loginUser(userData) {
var tokenUrl = serverBaseUrl + "/Token";
if (!userData.grant_type) {
userData.grant_type = "password";
}
var deferred = $q.defer();
$http({
method: 'POST',
url: tokenUrl,
data: userData,
})
.success(function (data,status,headers,cfg) {
// save the access_token as this is required for each API call.
accessToken = data.access_token;
isUserLoggedIn = true;
// check the log screen to know currently back from the server when a user log in successfully.
console.log(data);
deferred.resolve(data);
})
.error(function (err, status) {
console.log(err);
deferred.reject(status);
});
return deferred.promise;
}
}
我做错了什么?这是我从中获得灵感的另一篇有趣的读物:link
【问题讨论】:
-
我们不知道您做错了什么,因为您没有告诉我们您的问题是什么。你期待什么行为?发生了什么?
标签: javascript angularjs