如果在使用不同類型的組件構造函數中調用Angular注入一個以上的通用服務實例,Angular會注入嗎?以角度注入通用服務
我有很多服務將爲不同的類提供相同的功能,這些類都是從同一個基類繼承而來的。我想用Typescript的通用模式MyService<T extends BaseClass>
來解決這個問題。
但我不知道它如何與角的注射器jives:
- 請問角注射器比創建一個實例該服務的更多,如果它注入與不同類型的不同組成部分?
- 如果使用相同類型調用噴油器,噴油器是否會噴入相同實例?
代碼:
@Injectable
export class MyService<T> {
...
}
@Component
export class ComponentA {
constructor(alphaService MyService<Alpha>) {} <--Instance 1
}
@Component
export class ComponentB {
constructor(betaService MyService<Beta>) {} <----Instance 2?
}
@Component
export class ComponentA1 {
constructor(alphaService MyService<Alpha>) {} <---Instance 1?
}
這是合法的嗎?注入器是否知道創建兩個MyService實例?
請注意:不推薦使用'OpaqueToken'。改爲使用[**'InjectionToken' **](https://angular.io/docs/ts/latest/api/core/index/InjectionToken-class.html)。 – developer033
那麼,如何爲構造函數注入'HttpClient'(或'HttpModule')對象,就像這個構造函數(private http:HttpClient) – Bellash