ANG_FRONT

Capítulo 8.6. Child Routes en Angular

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AdminComponent } from './admin/admin.component';
import { UserManagementComponent } from './admin/user-management/user-management.component';
import { ProductManagementComponent } from './admin/product-management/product-management.component';

const routes: Routes = [
  {
    path: 'admin',
    component: AdminComponent,
    children: [
      { path: 'users', component: UserManagementComponent },
      { path: 'products', component: ProductManagementComponent },
    ]
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
<!-- admin.component.html -->
<h2>Admin Dashboard</h2>
<nav>
  <a routerLink="users">Manage Users</a>
  <a routerLink="products">Manage Products</a>
</nav>
<router-outlet></router-outlet>
import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'app-dashboard',
  template: `<button (click)="goToUsers()">Manage Users</button>`
})
export class DashboardComponent {
  constructor(private router: Router) {}

  goToUsers() {
    this.router.navigate(['admin', 'users']);
  }
}
{ path: 'users/:id', component: UserDetailComponent }
this.router.navigate(['admin', 'users', userId]);
{
  path: 'admin',
  component: AdminComponent,
  canActivate: [AdminGuard],
  children: [
    { path: 'users', component: UserManagementComponent, canActivate: [UserGuard] },
    { path: 'products', component: ProductManagementComponent },
  ]
}