首页 > 解决方案 > Angular对子组件使用多个父组件服务实例

问题描述

我看过这个帖子:Using multiple instances of the same service。是否可以从父级到子级使用相同的多个服务实例?

例如,我有一个ElementServiceinParentComponent并且有 2 个该服务的实例

{ provide: 'instance1', useClass: ElementService},
{ provide: 'instance2', useClass: ElementService},

我应该如何使用instance1inChild1Componentinstance2in Child2Component

标签: angularservicecomponentsangularjs-injector

解决方案


您可以在每个子组件的构造函数(以及父构造函数)中注入一个命名提供程序:

Child1组件

constructor(@Inject('instance1') private service: ElementService) { }

Child2Component

constructor(@Inject('instance2') private service: ElementService) { }

这是一个带有计数器的工作示例:https ://stackblitz.com/edit/angular-ivy-usorby?file=src%2Fapp%2Fchild1%2Fchild1.component.ts


推荐阅读