Si los módulos Angular son independientes, ¿por qué no tengo que usar RouterModule en el módulo de aplicación?

Resuelto Issac Howard asked hace 7 meses • 1 respuestas

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.moduleEl ngModule se ve así:

 imports: [
        RouterModule.forRoot(appRoutes)
    ],

  exports: [RouterModule]

RecipeRouting.moduleEl módulo se ve así:

imports: [
    CommonModule,
    RouterModule.forChild(routes)
  ],
  exports: [
    RouterModule
  ]

Recipe.moduleEl ngModule se ve así

exports: [
    // bunch of components and directives
  ],
imports: [
    RecipeRoutingModule
  ]

Finalmente App.modulese 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.moduleen el módulo de aplicación? Tengo la sensación de que tiene que ver con RouterModuleporque eso es lo único que estamos exportando en ese módulo y ya estamos importando RouterModuley ya hicimos cambios en la clase usando forChild?

¡Cualquier explicación sería genial!

Issac Howard avatar Feb 16 '24 19:02 Issac Howard
Aceptado

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.moduledebe ser una importación RecipeModuley debemos cargarlo RecipeModulecomo un módulo cargado de forma diferida/ansiosa!

Naren Murali avatar Feb 16 '2024 12:02 Naren Murali