因此,我有这个子类来实例化父级中未使用的服务:
export class ChildService extends ParentService {
constructor(protected someService: SomeService) {
super();
}
}
父级实例化子级未使用的另一项服务:
export class ParentService {
constructor(protected otherService: OtherService) {
}
}
因此显然这行不通,我需要在super
调用中发送参数。问题是,我真的不喜欢在孩子中实例化服务的想法,只是我可以将其发送给父母。这就是我到处都能找到的解决方案。
我还发现了另一种方法,那就是在父级中使用ServiceLocator.injector
以避免将服务用作构造函数参数:
export class ParentService {
protected otherService: OtherService;
constructor() {
this.otherService = ServiceLocator.injector.get(OtherService);
}
}
但是老实说,它也有些混乱。我正在为此寻找干净的解决方案。
我的特定用例是使用data.service
的{{1}},并由特定于类的服务继承。然后将在HttpClient
中处理所有HTTP
调用。也许有更好的方法来实现这种抽象!