-1

我编写了一个服务并将其注入到我的对话框中。我希望在关闭对话框时调用服务的 ngOnDestroy() 函数。但事实并非如此。

所以我想知道什么时候 ngOnDestroy() 会被解雇?
如果我希望它们在对话框关闭时被终止,我将如何取消订阅服务中的订阅?

这是 stackblitz 示例:https ://stackblitz.com/edit/angular-bf1taz

4

1 回答 1

2

由于您在“服务”数组中的 app.module.ts 中提供了服务,因此您的服务将是所有组件的全局实例。这通常是需要的,因为您经常使用 Service 在组件之间存储和通信数据,并且不想在使用它的组件被销毁时丢失这些数据。

如果您想拥有不同的服务实例(仅非常谨慎地使用),则需要限制您的提供者。

参考文档以获取信息。

如果你想重置你的服务,你可以在你的服务中有一个类似重置功能的东西,它在你之后手动清理并在你的对话框中调用 onClose。

于 2019-10-25T12:15:27.133 回答