Проблема локального хранилища - угловая 2
У меня есть локальная переменная хранения для хранения данных текущих аутентифицированных игр. Это структура моего приложения.
Открытые игры
У меня есть таблица Open Games, в которой хранится список игр. Теперь, когда я нажимаю на любую из игр (властелин колец) в таблице, она аутентифицируется, а имя аутентифицированной игры сохраняется в локальной переменной Storage и направляется на страницу (например, Display Game Page), которая отображает текущее сохраненное имя в локальном хранилище.
В первом случае я понимаю, что аутентифицированная игра отображается на странице отображения игры, но происходит то, что, когда я возвращаюсь к таблице Open Games для аутентификации другой игры (Spiderman), локальное хранилище по-прежнему сохраняет первую игру, в которой я аутентифицировался. Я должен буду повторно подтвердить подлинность Человека-паука прежде, чем местное хранилище сохранит Человека-паука.
При проверке консоли в журнале, когда я аутентифицирую игру, в локальном хранилище на странице отображения игры отображается старое сохраненное значение до отображения сведений о новой аутентифицированной игре.
Теперь моя проблема: как я могу убедиться, что аутентификация происходит до того, как локальное хранилище сохранит аутентифицированную игру?
Auth
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)
}
обновлен Auth
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;
}
});
}
1 ответ
if(localStorage.getItem('currentGame'))
{
localStorage.removeItem('currentGame');
localStorage.setItem('currentGame', JSON.stringify({game_name:game_name }))
}