我建立與用戶認證基部的簡單的應用程序在此:linkAngularJS傳遞服務變量到控制器
基本上,我有一個userAccountService,負責與服務器和登錄控制器處理登錄過程進行通信。
從其他控制器我想檢查用戶是否已經登錄(以隱藏登錄按鈕,並顯示用戶配置文件)。
所以我有一個navController
function navCtrl ($scope, $modal, userAccountService) {
$scope.IsUserLoggedIn = function() {
return userAccountService.isUserLoggedIn;
}
}
所以在HTML我用這個ng-hide="isUserLoggedIn()
我userAccountService:
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
我們不知道你做錯了什麼,因爲你沒有告訴我們您的問題是什麼。你期待什麼行爲?發生什麼事? – JeffryHouser