7

Bir Ionic 2 TypeScript projesi üzerinde çalışıyorum. Uygulama başlatma sırasında kurucudan bir hizmet enjekte ediyorum. Açısal 2'de Bağımlılık Enjeksiyonu Inline Injector ve Constructor Injection kullanırken Çoklu Örnekler Oluşturur

@App({ 
    providers: [ MyService ] 
}) 
export class MyApp { 
    constructor(private instance1 : MyService){} 
} 

Ve başka bir sınıfta

i instance1 ve instance2 değişkenlerin iki farklı örneğini almak
let injector = Injector.resolveAndCreate ([ MyService ]); 
let instance2 = injector .get(MyService ); 

kullanın.

"Singletons" sağlayıcı örneği başına

+0

(Plunker birlikte) Bu yoruma açıklanmıştır yoktur. olmak Bir geçici çözüm önerebilirim Kullanım durumunuz hakkında daha fazla bilgiye ihtiyacım var. –

cevap

2

korunur satır içi Enjektör kullanarak ve Yapıcı tek örneği olarak bunları yapmak için herhangi bir olası yolu var mı. Bunu Injector.resolveAndCreate ([ MyService ]); yaptığı da budur (yeni Injector oluşturursanız, o zaman da kendi sağlayıcı örnekleri. Bu nedenle beklenen davranıştır var sahiptir.

Sen bileşen ve servise Injector enjekte ve sonra işe yarayabilir bir çocuk enjektörü oluşturabilir olarak beklenen.

Eğer Açısal enjektörü enjekte edemez bir enjektör gerekiyorsa

, bir geçici çözüm davranışı (benim cevap bakınız) beklenen https://github.com/angular/angular/issues/4112#issuecomment-153811572

+1

Sadece enjektör ekle: Enjektör 'yapıcı parametresi olarak. Örnekleri istemek için kullanabilirsiniz (bence bu "injector.get (SomeType)' idi) veya çocuk enjektörleri oluşturmak için. Ben sadece telefonda yaşıyorum bu yüzden daha fazla detay değil. –

+0

Teşekkür ederim Gunter – tymspy