簡體   English   中英

Angular 2中的依賴注入在使用內聯注入器和構造器注入時會創建多個實例

[英]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將它們作為一個實例

每個提供商實例都維護“單例”。 如果創建一個新的InjectorInjector.resolveAndCreate ( [ MyService ] );這樣做的),則它也具有自己的提供程序實例,因此可以預期該行為。

您可以將Injector到您的組件和服務中,並創建一個子注入器,然后可以按預期工作。

如果您需要無法注入Angular注入器的注入器,則此注釋中提供了一種解決方法(使用Plunker) https://github.com/angular/angular/issues/4112#issuecomment-153811572

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM