如何更改Angular服务注入实例

问题描述

您好,我试图更改组件树的注入服务实例(例如ParentComponent的父级和Child1ComponentChild2Component的几个子级),它们全部依赖于称为{ {1}}。但是根据路由的不同,例如DataService,我想向/demo及其子节点注入另一个服务实例(它是从接口/抽象类派生的,这不是问题),并且无需更改ParentComponentParentComponentChild1Component的内部实现使它们使用Child2Component构造函数注入服务。

有什么想法吗?我需要一些可以在不使用工厂方法的情况下即时更改注射的东西。

MockDataService

(我正在使用Angular 10 btw)

解决方法

如果您没有状态管理并且不需要工厂,也许您可​​以提供服务而不是全部管理它们,则可以使用rxjs BehaviorSubject改进方法

print('\n')