Angular中的继承和依赖注入

时间:2018-09-03 13:23:10

标签: angular inheritance dependency-injection

我想创建一个从另一个(父组件)继承的组件(子组件)。

问题是parentComponent已经注入了很多服务,并且我们正在不断增加更多的服务。

此外,childComponent需要另一项服务,该服务在parentComponent中不存在。然后,我们需要添加一个带有super的构造函数并注入该服务。

如何从孩子的父母中注入所有服务,但又要同时包含所有服务?这样做可以避免childComponent发生更改,因为如果添加新服务,它将自动注入到他的孩子中。

我试过了,但是不能正常工作

import {Injector} from '@angular/core';
import {MyServiceA} from './myServiceA';
import {MyServiceB} from './myServiceB';
import {MyServiceC} from './myServiceC';

export class ParentComponent {
  protected myServiceA:MyServiceA;
  protected myServiceB:MyServiceB;
  protected myServiceC:MyServiceC;

  constructor(injector: Injector) {
    this.myServiceA = injector.get(MyServiceA);
    this.myServiceB = injector.get(MyServiceB);
    this.myServiceC = injector.get(MyServiceC);
  }
}

export ChildComponent extends ParentComponent {
  constructor(
    private anotherService: AnotherService,
    injector: Injector
  ) {
    super(injector);

    this.myServiceA.JustCallSomeMethod();
    this.myServiceB.JustCallAnotherMethod();
    this.myServiceC.JustOneMoreMethod();
  }
}

0 个答案:

没有答案