【发布时间】:2016-11-28 02:05:02
【问题描述】:
如果在使用不同类型的组件构造函数中调用通用服务,Angular 会注入多个实例吗?
我有很多服务将为从同一个基类继承的不同类提供相同的功能。我想使用 Typescript 的通用模式MyService<T extends BaseClass> 来处理这个问题。
但我不知道它如何与 Angular 的注入器配合使用:
- 如果将 Angular 注入器注入到具有不同类型的不同组件中,它会创建多个实例吗?
- 注入器会注入同一个实例,如果它被同类型调用?
代码:
@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 实例?
【问题讨论】:
标签: angular