angular - Angular对子组件使用多个父组件服务实例
问题描述
我看过这个帖子:Using multiple instances of the same service。是否可以从父级到子级使用相同的多个服务实例?
例如,我有一个ElementService
inParentComponent
并且有 2 个该服务的实例
{ provide: 'instance1', useClass: ElementService},
{ provide: 'instance2', useClass: ElementService},
我应该如何使用instance1
inChild1Component
和instance2
in Child2Component
?
解决方案
您可以在每个子组件的构造函数(以及父构造函数)中注入一个命名提供程序:
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
推荐阅读
- php - Magento 2 - 如何在通过管理面板添加或更新产品时调用一些 api
- html - 样式原生日期选择器的弹出菜单
- python - python中的递归函数调用
- javascript - vue slot props 不能通过什么?
- amazon-web-services - 如何使用 terraform 脚本动态创建 ec2 实例(无需硬编码 AMI ID)
- amazon-cloudformation - Cloudformation 条件嵌套堆栈未解决的资源依赖关系
- adb - 如何在屏幕上显示命令“adb shell input tap x y”反馈?
- python - 使用相同的键在python中合并多个字典,如果键不常见,则将0附加到值
- asp.net - .NET Framework 是如何与 windows 和 IIS 紧密耦合的
- linux - Linux ARM64 调用约定:被调用者需要保存哪些寄存器?