tym*_*spy 8 dependency-injection typescript ionic-framework angular
我正在研究Ionic 2 TypeScript项目.在应用程序启动期间,我通过构造函数注入服务.
@App({
providers: [ MyService ]
})
export class MyApp {
constructor( private instance1 : MyService ){}
}
Run Code Online (Sandbox Code Playgroud)
在我使用的另一个班级
let injector = Injector.resolveAndCreate ( [ MyService ] );
let instance2 = injector .get( MyService );
Run Code Online (Sandbox Code Playgroud)
我得到两个不同的变量实例instance1和instance2.
有没有办法通过使用内联的Injector和Constructor将它们作为一个实例
每个提供者实例都维护“单例”。如果您创建一个新的Injector(就是这样Injector.resolveAndCreate ( [ MyService ] );做的,那么它也有它自己的提供程序实例。因此,该行为是预期的。
您可以将其注入Injector到您的组件和服务中,并创建一个子注入器,然后它可以按预期工作。
如果您需要一个无法注入 Angular 注入器的注入器,则此评论中解释了一种解决方法(使用 Plunker)https://github.com/angular/angular/issues/4112#issuecomment-153811572