Taula de continguts

angular: rutas

rutas hijas en módulo centralizado

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 { }

<div class="btn-group">
    <button [routerLink]="['nuevo']">Nuevo</button>
    <button [routerLink]="['editar']">Editar</button>
    <button [routerLink]="['detalles']">Detalles</button>
</div>
<router-outlet></router-outlet>

rutas hijas gestionadas desde el módulo

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);
    });
...
}

acceder a parámetros propios de las rutas hijas