路由更改后,单例服务重置

时间:2020-01-13 14:26:54

标签: angular angular7

设置

我有一个单例服务GlobalSearchService,我正在AppModule中进行加载和提供。这是为此服务指定提供者的唯一位置,也是将其导入到的唯一模块。

所需结果

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

实际结果

除非更改路由,否则单例服务的功能与我上面所述的完全相同。每当路由更改时,服务都会重置为无数据的初始状态。

修复?

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

我尝试过的

我尝试设置forRoot,尽管由于对forRoot的了解有限,我可能做错了。我还确保在实际服务中将providedIn设置为'root'。现在,由于该服务无论如何都会缓存其状态,因此我有一个App组件会在每次路由更改时重置状态,但是我觉得这不是正确的方法。

0 个答案:

没有答案
相关问题