2016-11-02 11 views
1

最良の選択肢は何ですか?角2 - クラス内の注射器

私は、次の

let order new Order(123, this.request); 

ApiRequestは、注射用のグローバルプロバイダーである使用順序を作成するときに、私は次のクラスに

export class Order { 
    number?: any; 
    api?: ApiRequest; 
    constructor(number, api: ApiRequest) { 
     this.number = number; 
     this.api = api; 
    } 
} 

を持っています。

私は新しいオブジェクトを作成するときに私が自動的にクラスのAPIプロバイダを挿入する方法はありますか?

答えて

1

いいえ注入はDIによって作成されたインスタンスに対してのみ機能し、自分で作成する場合はnew Xxx()で動作しません。

+0

私は唯一のオプションを使用していますか? – keepwalking

+0

正確には、 'new Xxx()'でインスタンスを作成すると、あなた自身で渡すことができます。あなたは 'Injector'を渡し、コンストラクタ(injector:Injector){this.api = injector.get(ApiRequest);}のような' Order'を使って具体的な依存関係を取得することができます。 } '。これがあなたの状況の改善であるかどうかはわかりません。 –

+1

多分私は複数の依存関係がある場合です。ありがとう。 – keepwalking

関連する問題