如何在角度5重新加载后保留服务数据

时间:2018-01-27 06:49:01

标签: angular angular-services angular5 angular-components

我有一个服务来在组件之间传递数据,当它被调用时它工作但是当我重新加载服务数据时会重置。所以当我重新加载搜索时,内存被重置,所以有没有办法在重新加载后保持数据而不使用任何客户端存​​储?我很好奇的是,我可以使用rxjs实现这一点,但我不确定这会有什么帮助?我担心使用localstorage因为数据主要是对象或数组,而不是用户ID或会话ID。任何输入都会真的很有帮助。我已经制作了一个示例来帮助我。你可以在下面找到

https://stackblitz.com/edit/component-data-sharing-service

3 个答案:

答案 0 :(得分:3)

您应该在组件中使用 localstorage/sessionstorage 或共享服务。

您可以使用JSON.stringify存储信息(对象/数组)。如果您使用的是共享服务,它将成为单例,因此您可以访问任何组件。

答案 1 :(得分:0)

你是什么意思"没有使用客户端存储"?您必须使用客户端存储来保存客户端中的数据...

制作单人共享服务,您可以在其中保存数据。

像这样:

https://octoperf.com/blog/2016/03/29/singleton-service-using-angular2/

答案 2 :(得分:0)

您可能希望使用 sessionStorage 而不是 localStorage。当用户关闭您的应用程序选项卡时,sessionStorage 将被清除。另一方面,localStorage 持续跨标签,并且只有在用户完全关闭浏览器时才会被清除。此外,localStorage 在 Chrome 中的隐身窗口之间共享(尽管不与主窗口共享)。因此,sessionStorage 会比 localStorage 更安全。