1.服务b依赖与服务a的一般情况
一个模块中的一个一个组件,AbComponent,其中需要注入服务BService。
import {Component} from '@angular/core';
import {BService} from './b.service';
@Component({
template: ''
})
export class AbComponent {
constructor(private b: BService) {
this.b.sayB();
}
}
Bservice是这样的:
import {Injectable} from '@angular/core';
import {AService} from './a.service';
@Injectable()
export class BService {
constructor(private a: AService) {
}
sayB() {
this.a.sayA();
console.log('i am b');
}
}
代码很简单,Bservice中依赖AService。AService是这样的:
import {Injectable} from '@angular/core';
@Injectable()
export class AService {
constructor() {
}
sayA() {
console.log('i am a');
}
}
可以在模块中配置如下:
providers: [BService, AService],
2. 特殊情况
看起来没啥特殊的,但是如果AService我们拿不到呢,该怎么办,
方法就是在Bservice中导出Aservice
比如我们在Bservice中添加下面一行:
export const AB = [AService, BService];
如此一来,需要在模块中:
providers: [AB],
这样就曲线解决了问题