[英]how to store login info with angularJS
我目前正在使用angularJS開發一個小應用程序; 用戶必須先登錄表單,然后才能單擊一些鏈接,這些鏈接顯示從服務器獲取的數據。
登錄表單僅接受用戶輸入,然后“存儲”到工廠
app.factory('IdFormHolder', function () {
var that = this;
that.setId = function (data) {
that = data;
};
that.getId = function () {
return that;
};
return that;
});
效果很好,我需要將其保存起來,因為每次我將$ http.get作為標題時,服務器都需要發送登錄表單。
每個控制器都從工廠獲取登錄表單,並使用它從服務器獲取數據。
在有人決定刷新頁面之前,此方法工作正常,此時似乎工廠已從其登錄表單“清空”,然后Web應用程序無法顯示任何內容。
有沒有一種方法可以存儲此登錄信息,以免被輕易刪除?
安裝sessionStorage后,可以使用以下代碼:
app.factory('IdFormHolder', ['$sessionStorage', function ($sessionStorage) {
var that = this;
that.setId = function (data) {
$sessionStorage.id = data;
that = data;
};
that.getId = function () {
return $sessionStorage.id;
};
return that;
}]);
下載鏈接: https : //github.com/gsklee/ngStorage
為了保留數據,您必須使用某種本地數據庫||。 LocalStorage || SessionStorage至少。 初始化Factory時,您可以檢查並嘗試從DB / LS檢索該數據並將其保存為變量(如果存在)。
就像是
app.factory('IdFormHolder', function () {
this.heldId = attemptToGetSavedDataFromSomewhere(); // would be null otherwise
this.setId = (id) => {
this.heldId = id;
};
this.getId = () => this.heldId;
return this;
});
使用angular-local-storage,您可以訪問瀏覽器的本地存儲:
app.factory('IdFormHolder', function(localStorageService) {
return {
setId: function(data) {
return localStorageService.set('loggedUserData', data);
},
getId: function() {
return localStorageService.get('loggedUserData');
}
};
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.