Aşağıdaki sınıfta, http bağımlılığını soyutlamak istiyorum, böylece Angular 2, http nesnesini enjekte etmek için normal bağımlılık enjeksiyonunu kullanır.Köşeli 2 - Yapıcıda diğer bağımsız değişkenlerle karıştırılmış bağımlılık enjeksiyonu
import { Http } from '@angular/http';
class MyCollectionView<T> extends CollectionView {
constructor(private endpoint: string, private http: Http) {
}
// ... implemenation of class ...
}
ben şöyle sınıfını kullanmak istiyorum:
class MyClass {
private collection: MyCollectionView<ITestRow>;
constructor() {
this.collection = new MyCollectionView<ITestRow>('/some/endpoint');
}
}
Ben Bildiğim kadarıyla bildiğimiz
class MyClass {
private collection: MyCollectionView<ITestRow>;
constructor(private http: Http) {
this.collection = new MyCollectionView<ITestRow>('/some/endpoint', http);
}
}
yazmak zorunda benim şimdiki uygulamada örneklemek için mümkün değildir ng2 bağımlılık enjeksiyonunu ve yapıcıdaki özel argümanları birleştirmek için. Bağımlılık enjeksiyon bölümüyle ilgilenen bir tür fabrika fonksiyonuna ihtiyacım var ama şimdiye kadar hiç şansım olmadı. Özellikle de sınıfın jenerik kullanması nedeniyle. Burada izleyebileceğim en iyi uygulamalar var mı?
Lütfen birim testlerinde DI'yi MockBackend
yerine çözümlemek mümkün olduğunu unutmayın.
Stackoverflow'ta this question bulunamadı, ancak most upvoted answer argümanlarının dinamik olması gerektiğinden, IMHO kullanılamaz.
Doğru, teşekkürler için teşekkürler. Bu sınıf her zaman elle inşa edilecek ve bağımlılık enjeksiyonu ile değil, olduğu gibi bırakacağım. :) – dotcs