Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度,页面刷新时数据丢失_Angularjs_Angular_Typescript - Fatal编程技术网

Angularjs 角度,页面刷新时数据丢失

Angularjs 角度,页面刷新时数据丢失,angularjs,angular,typescript,Angularjs,Angular,Typescript,我有一个小问题 我在一个组件中有一个按钮,当按下该按钮时,它会选择一个游戏并运行一个函数,该函数只会将游戏发送到一个名为SelectedGameService的服务,这样我就可以了解选择了哪个游戏。这是我的密码 games.component.html中的按钮 该功能可将游戏发送至selectedGameService。这是我在该服务中的代码 import { Injectable } from '@angular/core'; import { Games } from '../games/G

我有一个小问题

我在一个组件中有一个按钮,当按下该按钮时,它会选择一个游戏并运行一个函数,该函数只会将游戏发送到一个名为SelectedGameService的服务,这样我就可以了解选择了哪个游戏。这是我的密码

games.component.html中的按钮

该功能可将游戏发送至selectedGameService。这是我在该服务中的代码

import { Injectable } from '@angular/core';
import { Games } from '../games/Games';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http'; 

@Injectable({
  providedIn: 'root'
})
export class SelectedGameService {

  selectedGame: Games;
  constructor(private http: HttpClient) { 
    this.selectedGame = new Games;
  }
所以基本上,这个服务创建了一个新游戏,并将其等同于触发handlePricegame功能的游戏

这是我的问题。当我运行代码时,它可以在浏览器中完美运行。当我按下“查看游戏详细信息”按钮时,我可以看到我想要的页面,但当我在该页面刷新浏览器时,游戏的所有信息都会消失。我怎样才能解决这个问题

您可以看到我在该页面刷新浏览器时的前后图片

从现在开始谢谢你


如果刷新浏览器,存储在服务变量中的数据将被清除。解决此问题的一种方法是使用会话或本地存储来存储数据:

    handleDetails(value) {
      localStorage.setItem('key', value);
      }
要从本地存储检索数据,请执行以下操作:

localStorage.getItem('key');

如果刷新浏览器,存储在服务变量中的数据将被清除。解决此问题的一种方法是使用会话或本地存储来存储数据:

    handleDetails(value) {
      localStorage.setItem('key', value);
      }
要从本地存储检索数据,请执行以下操作:

localStorage.getItem('key');

存储在服务中的数据驻留在内存中。当您刷新页面时,浏览器会释放内存,并为您的应用程序提供一张干净的书写板

如果您想在页面刷新中保持状态,您应该使用localStorage来保存数据

您应该遵循的流程是:

无论何时调用服务来保存状态,服务都应该在内部将其保存到localStorage。 刷新页面时,应首先检查localStorage中是否存在某些状态。如果是,那么您应该获取该数据并填充该表,否则从头开始。
存储在服务中的数据驻留在内存中。当您刷新页面时,浏览器会释放内存,并为您的应用程序提供一张干净的书写板

如果您想在页面刷新中保持状态,您应该使用localStorage来保存数据

您应该遵循的流程是:

无论何时调用服务来保存状态,服务都应该在内部将其保存到localStorage。 刷新页面时,应首先检查localStorage中是否存在某些状态。如果是,那么您应该获取该数据并填充该表,否则从头开始。
如果要在刷新之间保持数据,需要使用localstotage或sessionstorage等机制,然后在转到后端之前检查服务中是否有存储在localstorage中的数据。按F5键时,如果不使用某些内容来保存数据,则无法保存数据。刷新重新加载页面的所有脚本您是从某个api获取游戏详细信息还是仅在本地存储?您应该让游戏详细信息处理服务调用,而不是像现在那样单击该链接。你的URL中仍然有游戏标题。如果你想在刷新之间保存数据,你需要使用localstotage或sessionstorage之类的机制,然后在进入后端之前检查服务中是否有localstorage中存储的数据。按F5键时,如果不使用某些内容来保存数据,则无法保存数据。刷新重新加载页面的所有脚本您是从某个api获取游戏详细信息还是仅在本地存储?您应该让游戏详细信息处理服务调用,而不是像现在那样单击该链接。你的URL里有游戏标题,怎么可能是真的。服务在应用程序中是单例的,因此它们的状态与页面上下文是分开的,对吗?是的,服务是单例的,但最终它们是JavaScript函数/类,在页面加载时执行,在选项卡/浏览器关闭时删除。这怎么可能是真的。服务在应用程序中是单例的,因此它们的状态与页面上下文是分开的,对吗?是的,服务是单例的,但归根结底,它们是JavaScript函数/类,在页面加载时执行,在选项卡/浏览器关闭时删除。这只是一个黑客行为,不是我想要的答案。这只是一个黑客行为,不是我想要的答案。