import {RouterModule, Routes} from '@angular/router'; import {HomeComponent} from './components/home/home.component'; const rutas: Routes = [ { path: 'home', component: HomeComponent }, { path: 'usuario', component: UsuarioComponent }, { path: '**', pathMatch: 'full', redirectTo: 'home' } ]; export const GLOBAL_ROUTES = RouterModule.forRoot(rutas);
import {GLOBAL_ROUTES} from './app.routes'; ... @NgModule({ declarations: [ AppComponent,HomeComponent,UsuarioComponent, UsuarioNuevoComponent,UsuarioEditarComponent,UsuarioDetallesComponent ], imports: [ BrowserModule, GLOBAL_ROUTES ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
const rutas: Routes = [ { path: 'home', component: HomeComponent }, { path: 'usuario/:id', component: UsuarioComponent, children: [ { path: 'nuevo', component: UsuarioNuevoComponent }, { path: 'editar', component: UsuarioEditarComponent }, { path: 'detalles', component: UsuarioDetalleComponent }, { path: '**', pathMatch: 'full', redirectTo: 'nuevo' } ] }, { path: '**', pathMatch: 'full', redirectTo: 'home' } ];
<div class="btn-group"> <button [routerLink]="['nuevo']">Nuevo</button> <button [routerLink]="['editar']">Editar</button> <button [routerLink]="['detalles']">Detalles</button> </div> <router-outlet></router-outlet>
import {Routes} from '@angular/router'; import {UsuarioNuevoComponent} from './usuario-nuevo.component'; import {UsuarioEditarComponent} from './usuario-editar.component'; import {UsuarioDetalleComponent} from './usuario-detalle.component'; export const USUARIO_ROUTES: Routes = [ { path: 'nuevo', component: UsuarioNuevoComponent }, { path: 'editar', component: UsuarioEditarComponent }, { path: 'detalles', component: UsuarioDetalleComponent }, { path: '**', pathMatch: 'full', redirectTo: 'nuevo' } ];
import {RouterModule, Routes} from '@angular/router'; import {HomeComponent} from './components/home/home.component'; import {UsuarioComponent} from './components/usuario/usuario.component'; import {USUARIO_ROUTES} from './components/usuario/usuario.routes'; const rutas: Routes = [ { path: 'home', component: HomeComponent }, { path: 'usuario/:id', component: UsuarioComponent, children: USUARIO_ROUTES }, { path: '**', pathMatch: 'full', redirectTo: 'home' } ]; export const GLOBAL_ROUTES = RouterModule.forRoot(rutas);
import { Component, OnInit } from '@angular/core'; import {ActivatedRoute} from '@angular/router'; @Component({ selector: 'app-usuario', templateUrl: './usuario.component.html', styleUrls: ['./usuario.component.css'] }) export class UsuarioComponent { constructor(private router: ActivatedRoute) { this.router.paramMap.subscribe(parametros => { console.log('RUTA PADRE'); console.log(parametros); }); } }
... constructor(private router: ActivatedRoute) { this.router.parent.paramMap.subscribe(parametros => { console.log('RUTA HIJA'); console.log(parametros); }); ... }
import {Routes} from '@angular/router'; import {UsuarioNuevoComponent} from './usuario-nuevo.component'; import {UsuarioEditarComponent} from './usuario-editar.component'; import {UsuarioDetallesComponent} from './usuario-detalles.component'; export const USUARIO_ROUTES: Routes = [ { path: 'nuevo', component: UsuarioNuevoComponent }, { path: 'editar/:param2', component: UsuarioEditarComponent }, { path: 'detalles', component: UsuarioDetallesComponent }, { path: '**', pathMatch: 'full', redirectTo: 'nuevo' } ];
... constructor(private router: ActivatedRoute) { this.router.paramMap.subscribe(parametros => { console.log(parametros); // {param2: "completo"} }); } ...