私はAngularチュートリアルとHTTPセクションhttps://angular.io/docs/ts/latest/tutorial/toh-pt6.htmlを調べて、NgModuleでインポートが宣言されている順番がアプリケーションの動作の違いによって違いがあることに気付きました。私はそれがなぜあるのか知りたいです。特にNgModuleのインポートの順序が重要なのはなぜですか?
これは動作します:
@NgModule({ imports: [ BrowserModule, FormsModule, HttpModule, InMemoryWebApiModule.forRoot(InMemoryDataService), AppRoutingModule ], ... })
が、以下にはありません。ヒーローのリストはロードされません。 HttpModuleをがInMemoryWebApiModule後に宣言されていることに注意してください:
@NgModule({ imports: [ BrowserModule, FormsModule, InMemoryWebApiModule.forRoot(InMemoryDataService), HttpModule, AppRoutingModule ], ... })
チュートリアルでは、角度2.4.4を使用しています。私はFirefoxとIEの両方でこの問題に気付きました。 Googleの検索で問題の原因を示すものは見つかりませんでした。
ありがとうございました。私はInMemoryWebApiのreadmeでこれを見つけました: "InMemoryWebApiModuleのXHRBackendプロバイダーが他のすべてのものに取って代わることを確実にするために、常にHttpModuleの後にInMemoryWebApiModuleをインポートしてください。これは基本的にあなたが言ったことです。 – hashpyrit
インポートの順序も重要ですが、AppRoutingModuleをカスタムモジュールの後に配置すると、AppRoutingModuleで定義されている代わりにそのカスタムモジュールを最初のページとしてロードすることに気付きました – albanx