Przechodzę przez samouczek Angular i przechodząc przez sekcję HTTP https://angular.io/docs/ts/latest/tutorial/toh-pt6.html i zauważyłem, że kolejność, w której importowane są deklarowane w NgModule, ma wpływ na to, czy aplikacja działa, czy też nie. Chciałbym wiedzieć, dlaczego tak jest.Dlaczego kolejność importu NgModule ma znaczenie?
W szczególności to działa:
@NgModule({ imports: [ BrowserModule, FormsModule, HttpModule, InMemoryWebApiModule.forRoot(InMemoryDataService), AppRoutingModule ], ... })
ale dodaje się tego nie robi. Lista bohaterów nie zostaje załadowana. Zauważ, że HttpModule jest zadeklarowane po InMemoryWebApiModule:
@NgModule({ imports: [ BrowserModule, FormsModule, InMemoryWebApiModule.forRoot(InMemoryDataService), HttpModule, AppRoutingModule ], ... })
Tutorial korzysta kątowa 2.4.4. Zauważyłem problem zarówno w Firefoksie, jak i IE. Nie znalazłem nic w moich wyszukiwaniach w Google, które wskazywałyby źródło problemu.
Dzięki temu pomaga. Znalazłem to w pliku Readme InMemoryWebApi: "Zawsze importuj InMemoryWebApiModule po module HttpModule, aby upewnić się, że dostawca XHRBackend modułu InMemoryWebApiModule zastępuje wszystkie inne." To jest zasadniczo to, co powiedziałeś. – hashpyrit
Kolejność importu również ma znaczenie, zauważyłem, że jeśli wstawię AppRoutingModule po module niestandardowym, to załaduje on ten moduł niestandardowy jako pierwszą stronę zamiast tej zdefiniowanej w AppRoutingModule – albanx