向父类注入服务

时间:2016-10-07 08:42:56

标签: angular

是否可以将服务注入父类? 我有两节课。一个父类和前一个。 IncomeService扩展为parent。

父:

@Injectable()
export class ObjectService {
    constructor(protected apiService: ApiService,
                protected cacheService: CacheService) {
    }
}

IncomeService

@Injectable()
export class IncomeService extends ObjectService {
    test() {
        this.apiService; //is undefined
    }
}

我想向父母注入服务,因为每个孩子都会使用这些服务并在父类中使用。我看到angular不会将apiServicecacheService注入IncomeService。 它是一个功能还是一个bug?

1 个答案:

答案 0 :(得分:4)

除了重复子类中的构造函数参数并使用super(...)调用将其传递给超类之外,基本上没有其他方法。

@Injectable()
export class IncomeService extends ObjectService {
    constructor(protected apiService: ApiService,
                protected cacheService: CacheService) {
      super(apiService, cacheService);
    }
    test() {
        this.apiService; //is undefined
    }
}

有一些丑陋的黑客可以解决这个问题,但我不鼓励。