【发布时间】:2016-11-23 18:07:09
【问题描述】:
我有一个服务,像这样:
@Injectable()
export class EditorService { ... }
我有一个组件,像这样:
@Component({
...
template: `<child-component></child-component>`,
providers: [EditorService],
...
})
export class SomeComponent {
constructor(
private _appleEditorService: EditorService,
private _pearEditorService: EditorService) {}
}
你可能已经注意到,这个组件有一个子组件:
@Component({
...
selector: 'child-component',
...
})
export class ChildComponent {
constructor(
private _appleEditorService: EditorService,
private _pearEditorService: EditorService) {}
}
如您所见,我想要我的EditorService 的两个实例:一个用于编辑苹果,一个用于编辑梨。但是,上面的代码不起作用,因为 Angular 无法知道 EditorService 的哪个实例是哪个实例,因为它们的变量名是私有的。 _pearEditorService in ChildComponent 可能与 _appleEditorService 在 SomeComponent 中引用相同的实例。
问题:否则,我可以两次使用同一个 Angular2 服务吗?
编辑:我的问题是是否可以使用同一个类。我知道有一些解决方法,可以为服务的每个实例创建一个单独的类,甚至可以通过继承使用很少的代码来实现。我只是想知道是否可以不这样做。
【问题讨论】: