我有一个单例服务GlobalSearchService
,我正在AppModule
中进行加载和提供。这是为此服务指定提供者的唯一位置,也是将其导入到的唯一模块。
我这样做是希望GlobalSearchService
将充当全局单例,所有加载它并在构造函数中声明它的组件都可以访问。
除非更改路由,否则单例服务的功能与我上面所述的完全相同。每当路由更改时,服务都会重置为无数据的初始状态。
我正在寻找一种方法来确保此全局单例保持其状态,而不考虑破坏性浏览器操作(例如重新加载/刷新等)以外的任何操作。
我尝试设置forRoot
,尽管由于对forRoot
的了解有限,我可能做错了。我还确保在实际服务中将providedIn
设置为'root'
。现在,由于该服务无论如何都会缓存其状态,因此我有一个App组件会在每次路由更改时重置状态,但是我觉得这不是正确的方法。