首页 > 解决方案 > 路由更改后单例服务重置

问题描述

设置

我有一个单例服务,GlobalSearchService我正在加载和提供AppModule。这是为该服务指定提供程序的唯一位置,也是导入该服务的唯一模块。

期望的结果

我这样做是希望GlobalSearchService充当全局单例,所有加载它的组件都可以访问它并在其构造函数中声明它。

实际结果

单例服务与我上面描述的完全一样,除非并且直到路线改变。每当路由更改时,服务都会重置为没有数据的初始状态。

修复?

我正在寻找一种方法来确保这个全局单例保持其状态,而不管除了破坏性浏览器操作(例如重新加载/刷新等)之外的任何操作。

我试过的

我试过设置forRoot,虽然我可能做错了,因为我的知识forRoot有限。我还确保在实际服务providedIn中设置为。'root'现在我让应用程序组件在每次路由更改时重置状态,因为服务无论如何都会缓存其状态,但我觉得这不是解决这个问题的正确方法。

标签: angularangular7

解决方案


推荐阅读