Si los módulos Angular son independientes, ¿por qué no tengo que usar RouterModule en el módulo de aplicación?
Supongamos que tenemos 4 módulos:
AppRouting.module
Recipe.module
RecipeRouting.module
App.module
También nos ocupamos del módulo hecho angular:RouterModule
AppRouting.module
El ngModule se ve así:
imports: [
RouterModule.forRoot(appRoutes)
],
exports: [RouterModule]
RecipeRouting.module
El módulo se ve así:
imports: [
CommonModule,
RouterModule.forChild(routes)
],
exports: [
RouterModule
]
Recipe.module
El ngModule se ve así
exports: [
// bunch of components and directives
],
imports: [
RecipeRoutingModule
]
Finalmente App.module
se ve así
// we import a bunch of necessary modules
imports: [
AppRouteModule,
RecipesModule
],
// why is it that we don't have to import the `RecipeRouting.module`?
Como se indica en la pregunta del último fragmento, ¿por qué no importamos RecipeRouting.module
en el módulo de aplicación? Tengo la sensación de que tiene que ver con RouterModule
porque eso es lo único que estamos exportando en ese módulo y ya estamos importando RouterModule
y ya hicimos cambios en la clase usando forChild
?
¡Cualquier explicación sería genial!
Es porque cuando importa el módulo de enrutador de otro módulo, anula el enrutamiento predeterminado configurado enapp.routing.module.ts
Routes of RouterModule.forRoot(appRoutes)
-> ser anulado porRecipeRouting.module Routes
¡No RecipeRouting.module
debe ser una importación RecipeModule
y debemos cargarlo RecipeModule
como un módulo cargado de forma diferida/ansiosa!