What is forChild routing ?
Whenever we want to create a separate module and routing file.
Like I don’t want to put all component in module.ts file of one section.
–TS File (recipes.modules.ts)
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { ReactiveFormsModule } from "@angular/forms";
import { RecipesComponent } from '../recipes/recipes.component';
import { RecipeListComponent } from '../recipes/recipe-list/recipe-list.component';
import { RecipeDetailComponent } from '../recipes/recipe-detail/recipe-detail.component';
import { RecipeItemComponent } from '../recipes/recipe-list/recipe-item/recipe-item.component';
import { RecipeStartComponent } from '../recipes/recipe-start/recipe-start.component';
import { RecipeEditComponent } from '../recipes/recipe-edit/recipe-edit.component';
import { RecipesRoutingModule } from "../recipes/recipes-routing.module";
@NgModule({
declarations: [
RecipesComponent,
RecipeListComponent,
RecipeDetailComponent,
RecipeItemComponent,
RecipeStartComponent,
RecipeEditComponent
],
imports: [
CommonModule,
ReactiveFormsModule,
RecipesRoutingModule
]
})
export class RecipesModule {}
Use there forChild instead of forRoot
–TS File (recipes-routing.module.ts)
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
import { RecipesComponent } from "../recipes/recipes.component";
import { RecipeStartComponent } from "../recipes/recipe-start/recipe-start.component";
import { RecipeDetailComponent } from "../recipes/recipe-detail/recipe-detail.component";
import { RecipeEditComponent } from "../recipes/recipe-edit/recipe-edit.component";
const receipesRoutes: Routes = [
{ path: '', redirectTo: '/recipes', pathMatch: 'full'},
{ path: 'recipes', component: RecipesComponent, children: [
{ path: '', component: RecipeStartComponent},
{ path: 'new', component: RecipeEditComponent},
{ path: ':id', component: RecipeDetailComponent},
{ path: ':id/edit', component: RecipeEditComponent}
] },
]
@NgModule({
imports: [
RouterModule.forChild(receipesRoutes)
],
exports: [RouterModule]
})
export class RecipesRoutingModule {}
You can see I already import recipes-routing.modue in recipes.modules file.
Because module always import.
Now Register recipes.module file
import { RecipesModule } from "./recipes/recipes.modules";
@NgModule({
imports: [
RecipesModule
],
})
export class AppModule { }