angular - 强制服务销毁?

标签 angular angular2-services

我正在使用 Angular 2+。

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

这可能吗?

有谁知道怎么做?

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

编辑:

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

最佳答案

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

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

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

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

关于angular - 强制服务销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065779/

相关文章:

javascript - 找不到模块 : Error: Package path ./locales 在 Angular 更新到 13 后未从包中导出

javascript - 当方法可能会或可能不会异步获取数据时,应使用哪种 RxJS 类型?

angular - 为什么 dispatch 在初始加载时没有在 guards 中同步运行?

javascript - localStorage 似乎在 Angular 中不起作用

angular - 如何在指令中使用 ng-content

javascript - 对 Angular 和 NgRx 中的嵌套状态变化使用react

javascript - Angular2 通过选择器传递对象

html - 在 Angular 2 应用程序中读取 JSON 文件

angular - 重置 Angular 2 应用程序

Angular 2 单击打开菜单