我正在研究Ionic 2 TypeScript项目。 在应用程序启动期间,我通过构造函数注入服务。
@App({
providers: [ MyService ]
})
export class MyApp {
constructor( private instance1 : MyService ){}
}
在另一个班级我使用
let injector = Injector.resolveAndCreate ( [ MyService ] );
let instance2 = injector .get( MyService );
我得到两个不同的变量实例instance1和instance2。
是否有任何可能的方法通过使用内联Injector和Constructor将它们作为一个实例
答案 0 :(得分:2)
每个提供商实例维护“单身人士”。如果你创建一个新的Injector
(那是Injector.resolveAndCreate ( [ MyService ] );
所做的,那么它也有它自己的提供者实例。因此,这种行为是预期的。
您可以将Injector
注入您的组件和服务,然后创建一个子注入器,然后按预期工作。
如果您需要无法注入Angular进样器的进样器,则此注释中会解释一种解决方法(使用Plunker)https://github.com/angular/angular/issues/4112#issuecomment-153811572