angularjs – Angular 2中的依赖注入在使用内联注入器和构造函数注入时创建多个实例

我正在研究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将它们作为一个实例

最佳答案
每个提供者实例维护“单身人士”.如果你创建一个新的Injector(那是Injector.resolveAndCreate([MyService]);那么它也有它自己的提供者实例.因此行为是预期的.

您可以将Injector注入组件和服务,并创建一个子注入器,然后可以按预期工作.

如果您需要一个无法注入Angular进样器的进样器,则此注释中解释了一种解决方法(使用Plunker)https://github.com/angular/angular/issues/4112#issuecomment-153811572

转载注明原文:angularjs – Angular 2中的依赖注入在使用内联注入器和构造函数注入时创建多个实例 - 代码日志