强制服务销毁?

时间:2017-07-12 19:11:28

标签: angular angular2-services

我正在使用Angular 2 +。

作为组件的ngOnDestroy的一部分,我想销毁/删除服务实例。

这可能吗?

任何人都知道怎么做?

当然,下次加载组件时,我想重新创建服务,然后在组件死亡时销毁。

编辑:

我想要实现的是每个组件的专用Web套接字。当组件被销毁(ngOnDestroy)时,断开websocket。

1 个答案:

答案 0 :(得分:7)

我假设您的模块提供程序数组包含该服务。从那里删除它,并将其范围限定为组件,如下所示:

@Component({
  selector: 'yb-page',
  providers: [ServicePerComponent]
})

这基本上可以防止角度为服务制作单例。它将为每个组件创建一个新服务。因此,一旦该组件死亡,您就可以在onDestroy中运行该服务的清理逻辑。

此处有更多信息:https://angular.io/guide/hierarchical-dependency-injection