これはわかりやすいです。私は非常に説明を感謝したいと思います。Angular 2の提供サービスのバレルファイルのエクスポート順DI動作の変更
すべてのコアサービスファイルをcommonフォルダに保存しておき、common.tsというバレルファイルに追加します。
これらのサービスをapp.moduleにインポートして提供します。
バレルファイルからエクスポートされたサービスの順序がDIの動作に違いがあるようです。
私は私が受け取る
export { Core } from './core';
export { TestService } from './test-service';
この順に輸出して実行すると
OtherServiceのためのすべてのパラメータを解決できません:
OtherServiceではないダミーのサービスです(?)不毛なファイルに含まれているのは、私のテストに固有のコンポーネントです。 OtherServiceはapp.moduleで提供され、TestServiceの後にリストされています(問題があるかどうか不明ですが、これは非常に奇妙な日です)。
私はOtherServiceがうまくTestServiceを受け取ることになります
export { TestService } from './test-service';
export { Core } from './core';
にcommon.tsバレルファイルに輸出の順序を変更した場合。私が考えることができる唯一の相互作用は、CoreServiceがapp.componentに注入されていることですが、TestServiceに依存しません。
バレルファイル内のエクスポートの順序を変更すると、Angular DIエンジンの動作が変更されるのはなぜですか?あなたが私に尋ねると、それは狂った話です。
必要に応じて、私はオンラインでの再生を試みることができますが、リクエストを待つことになります。任意の入力のための
おかげで、 マイク
これは循環依存です。 – yurzui
コメントありがとうございますが、循環依存ではありません。私は以前にそれに踏み込んで、そのシナリオを解決するためにインジェクタを注入し、循環参照を手動で要求しました。私は依存関係のない単純なTestServiceを作成しました。 – Mike
私は最小限の複製を見たいと思います – yurzui