angular - 在 Angular 中注销时重置服务
问题描述
我的应用程序中有一些服务包含我想在用户注销时重置的数据。
我有一个仅在用户登录时显示的父组件,因此如果我将这些服务包含在该组件装饰器的提供程序数组中,则每次用户注销时,该组件都会被销毁,并且服务实例也会被删除. 如果另一个用户登录,这个父组件将使用新的服务实例再次创建,从而满足我的需求。
这很好用,但是如果我使用需要来自这些服务实例中的一个(或多个)数据的解析器,我将如何注入它们?也许我对重置这些服务数据的想法没有经过深思熟虑,应该使用替代方案,但我发现它非常干净和无缝,因为当我需要包含另一个具有需要在注销时重置数据的服务时,我只需将其添加到父组件提供程序数组中。
更新:在阅读了大量文档后,我最终了解了angular 中不同类型的分层注入器,因此我创建了一个更具体的新问题。我会留下这个以供参考。
解决方案
您可以使用角度注入器获取服务实例:
constructor(private injector:Injector) {
injector.get(MyService);
}
您可能想查看依赖注入令牌: Docs
推荐阅读
- ruby-on-rails - 路由约束:没有匹配时引发异常
- javascript - 单击时在 OSM 上显示标记弹出窗口 - Angular 7
- c++ - Win flex-bison 编译产生无效字符错误
- dna-sequence - 如何使用 bedtools 覆盖来评估基因组组装?
- python - 用列多索引(df.fillna)将数据框中仅一列的“NaN”值替换为最后一个有效值
- boto3 - 如何在完成 Boto3 单元测试之前等待 CodeBuild 项目完成构建?
- html - Bootstrap v 4.1.3 - 导航栏放置项目
- paas - 是否有允许在传入 TCP 连接上唤醒 VM/容器的云服务?
- c# - 进行 API 调用时出现 404 错误,即使请求计数增加
- python - deeplab 的自定义损失