【发布时间】:2020-02-21 18:54:39
【问题描述】:
我编写了一个服务并将其注入到我的对话框中。我希望在关闭对话框时调用服务的 ngOnDestroy() 函数。但事实并非如此。
所以我想知道 ngOnDestroy() 什么时候会被解雇?
如果我希望在对话框关闭时终止订阅,我将如何取消订阅服务中的订阅?
这是 stackblitz 示例:https://stackblitz.com/edit/angular-bf1taz
【问题讨论】:
-
我相信
ngOnDestroy生命周期钩子仅适用于组件,即使您可以实现接口,也不会在服务上工作。 -
它在文档中说:angular.io/api/core/OnDestroy - “当指令、管道或服务被销毁时调用的生命周期钩子”
-
哦,你是对的,所以这是stackoverflow.com/questions/45898948/…的答案。你应该把你的服务放到组件提供者中,然后它会随着组件一起被销毁,如果它在根提供者中,那么它会在根组件被销毁时被销毁
标签: angular observable angular-lifecycle-hooks