次のクラスでは、httpオブジェクトを挿入するためにAngular 2が通常の依存関係注入を使用するようにhttp依存関係を抽象化したいと考えています。角2 - 他の引数を持つコンストラクタでの依存関係注入の混合
import { Http } from '@angular/http';
class MyCollectionView<T> extends CollectionView {
constructor(private endpoint: string, private http: Http) {
}
// ... implemenation of class ...
}
私は次のようにクラスを使用したい:私は私の知る限り、それは可能ではないと知っているよう
class MyClass {
private collection: MyCollectionView<ITestRow>;
constructor(private http: Http) {
this.collection = new MyCollectionView<ITestRow>('/some/endpoint', http);
}
}
を記述する必要が
class MyClass {
private collection: MyCollectionView<ITestRow>;
constructor() {
this.collection = new MyCollectionView<ITestRow>('/some/endpoint');
}
}
私の現在の実装でインスタンス化するにはng2依存性注入とカスタム引数をコンストラクタに組み合わせます。私は依存性注入部分を処理する何らかの種類の工場機能が必要だと思っていますが、今まで私は運がありませんでした。特にクラスではジェネリックを使用しているためです。私がここに従うことができるベストプラクティスはありますか?
単体テストでは、代わりにMockBackend
でDIを解決できることに注意してください。
stackoverflowでthis questionが見つかりましたが、そのmost upvoted answerは、引数が動的でなければならないため、IMHOでは使用できません。
確認のおかげで感謝します。このクラスは常に手動で構築され、依存関係の注入を介さずにそのままそのまま残します。 :) – dotcs