我有一個本地存儲變量來存儲當前認證遊戲的數據。這是我的應用程序的結構。本地存儲問題 - 角2
打開遊戲
我有具有存儲在桌上游戲列表的表稱爲OpenGames。現在,當我點擊表中的任何遊戲(戒指)時,它會進行身份驗證,並且已驗證的遊戲名稱將存儲在本地存儲變量中並路由到顯示頁面(例如:顯示遊戲頁面)當前存儲的名稱存儲在本地存儲中。
在第一個例子中,我認識到顯示遊戲頁面上顯示的是經過驗證的遊戲,但是當我回到OpenGames表來驗證另一個遊戲(Spiderman)時,本地存儲仍然保留了第一個遊戲我認證。在本地存儲將存儲蜘蛛俠之前,我將不得不重新驗證蜘蛛俠。
檢查記錄的控制檯,當我對遊戲進行身份驗證時,顯示遊戲頁面上的本地存儲顯示舊的存儲值,然後顯示新的已驗證遊戲的詳細信息。
我現在的問題是:如何確保在本地存儲保存認證遊戲之前進行認證?
驗證
constructor(private httpService: Http) {
let currentGame = JSON.parse(localStorage.getItem('currentGame'));
}
authGame(game: string): Observable<boolean> {
return this.http.post('http://localhost:9000/example.com',({game: game }))
.map((response: Response) => {
let game_name:string = response && response.json().game.name;
if (game_name) {
// store name in variable
this.game_name = game_name;
localStorage.setItem('currentGame', JSON.stringify({game_name:game_name })
console('Current Game is ' +game_name)
return true;
} else {
return false;
}
});
}
顯示遊戲頁面
constructor(private auth:AuthGame){
this.currentGame = JSON.parse(localStorage.getItem('currentGame'));
this.currentGame.game_name);
console('Current Game is ' currentGame.game_name)
}
更新驗證
constructor(private httpService: Http) {
let currentGame = JSON.parse(localStorage.getItem('currentGame'));
}
authGame(game: string): Observable<boolean> {
return this.http.post('http://localhost:9000/example.com',({game: game }))
.map((response: Response) => {
let game_name:string = response && response.json().game.name;
if (game_name) {
// store name in variable
this.game_name = game_name;
if(localStorage.getItem('currentGame')) {
localstorage.removeItem('currentGame');
localStorage.setItem('currentGame', JSON.stringify({game_name:game_name }))
console('Current Game is ' +game_name)
}
return true;
} else {
return false;
}
});
}
設置本地存儲之前檢查它是否已經設置,如果它已經設置,然後刪除本地存儲並將新值設置爲本地存儲 –
@ArunKumaresh我真的可以與您的聲明相關。如果你可以更加解釋。但是如果我明白你的意思,當我從顯示遊戲頁面返回到開放遊戲桌以驗證另一個遊戲時,當我刪除本地存儲時,應用程序將拋出一個錯誤,指出自顯示遊戲以來'currentGame爲null'頁面打開之前認證 – XamarinDevil
你可以添加你試過的代碼 –