[英]Dependency Injection in Angular 2 Creates Multiple Instances while using Inline Injector and Constructor Injection
我正在研究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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.