Child Routing

// Root route
/user/:id

// Child Routes
/user/:id/edit
/user/:id/detail

Root route

Create `app.routes.ts`

```javascript
import { RouterModule, Routes } from "@angular/router";
import { UserComponent } from "./user/user.component";
import { HomeComponent } from "./home-component.component";
import { USER_ROUTES } from "./user/user.routes";


const APP_ROUTES: Routes = [
  { path: '', component: HomeComponent },
  { path: '**', redirectTo: '/user/1', pathMatch: 'full' },
  { path: 'user/:id', component: UserComponent, children: USER_ROUTES },
];

export const routing = RouterModule.forRoot(APP_ROUTES);

Define child routes

In user.routes.ts

import { RouterConfig } from "@angular/router";

import { UserDetailComponent } from "./user-detail.component";
import { UserEditComponent } from "./user-edit.component";
import { UserDetailGuard } from "./user-detail.guard";

export const USER_ROUTES: RouterConfig = [
  { path: 'detail', component: UserDetailComponent] },
  { path: 'edit', component: UserEditComponent] }
];

Define child route placeholder

In user.component.ts

import { Component} from '@angular/core';
import { ROUTER_DIRECTIVES } from "@angular/router";

@Component({
  moduleId: module.id,
  selector: 'app-user-component',
  template: `
      <h1>User Component</h1>
      <router-outlet></router-outlet>
    `,
  directives: [ROUTER_DIRECTIVES]
})

Last updated

Was this helpful?