angular - 在Angular 2+中注入自定义服务提供者的部门声明的新服务实例
问题描述
基本上我正在尝试创建一个具有列表组件的模块,我想重用它。
列表组件 get 是在其构造函数中注入的服务(服务 B):constructor(@Optional() private listService?: ServiceB) {}
还存在另一个带有构造函数的服务(服务 A):constructor(private is: ServiceB) {}
,它又用于与使用列表组件的组件通信。
ServiceA 被导出为提供者函数以隐藏 Service B 的存在:
export let ListServiceProvider = {
provide: ServiceA,
useFactory: (is: ServiceB) => new ServiceA(is),
deps: [ServiceB]
};
我想要实现的是每个列表组件都会获得自己的一组服务,其中服务 A 被注入到外部组件中,而服务 B 被注入到服务 A 和列表组件本身中。
就目前而言,服务 A 为每个列表组件创建,但服务 B 为所有实例服务 A 共享。
如何实现上述目标?
数据流将是:父组件 <-> 服务 A <-> 服务 B <-> 列表组件。
解决方案
推荐阅读
- selenium - 使用 Selenium ChromeDriver 时 Electron 无法访问用户数据目录
- reactjs - 一些值在第一次测试中未初始化
- azure-devops - Connect-AzAccount:术语“Connect-AzAccount”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称
- selenium - 仅在渲染时获取数据url时访问数据图像url
- julia - 使用 NLsolve.jl 的拉格朗日乘子法
- c# - 使用 SaveBinaryDirect (C#) 将文件上传到 SharePoint Online 时出现 401 错误
- python-3.x - SQLite 不能一次更新多个表
- node.js - Chai 函数(isAbove、isBelow、ecc)不起作用
- sql - 多选与 SQL 脚本中的连接
- laravel - Laravel 表单请求 date_format 规则的自定义错误消息