我正在使用Angular 2 +。
作为组件的ngOnDestroy的一部分,我想销毁/删除服务实例。
这可能吗?
任何人都知道怎么做?
当然,下次加载组件时,我想重新创建服务,然后在组件死亡时销毁。
编辑:
我想要实现的是每个组件的专用Web套接字。当组件被销毁(ngOnDestroy)时,断开websocket。
答案 0 :(得分:7)
我假设您的模块提供程序数组包含该服务。从那里删除它,并将其范围限定为组件,如下所示:
@Component({
selector: 'yb-page',
providers: [ServicePerComponent]
})
这基本上可以防止角度为服务制作单例。它将为每个组件创建一个新服务。因此,一旦该组件死亡,您就可以在onDestroy中运行该服务的清理逻辑。
此处有更多信息:https://angular.io/guide/hierarchical-dependency-injection