【问题标题】:Can a service be disposed when it's only injected in one component?当服务只注入一个组件时,它可以被释放吗?
【发布时间】:2019-11-10 07:42:14
【问题描述】:

我有一个服务和一个组件。在组件的模块中,服务以providers: [RegisterStoreService] 的形式提供。

当组件的构造函数第一次被调用时,服务的构造函数也被调用。但是每隔一次,组件被“构造”,服务的构造函数就不会被调用。

这是应该的吗?如果是的话,有没有办法在组件的 onDestroy 方法被调用时处理这个 Service 实例?

实际目的是完全重置 RegisterStore。

【问题讨论】:

  • 服务一旦构建,它就会保持活动状态,直到您刷新或关闭页面。您应该在您的服务中编写一个重置方法,您将在组件的onDestroy 中调用该方法

标签: angular


【解决方案1】:

如果你在一个模块中提供服务,它是一个单例服务,这意味着只有一个实例被创建并在所有组件之间共享。

如果您每次都想要一个单独的实例,请将其从模块的 providers 数组中移除,并将其添加到 @component 装饰器的 providers 数组中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多