Parámetro de ruta opcional de Angular 2

Resuelto Jeroen asked hace 9 años • 14 respuestas

¿Es posible tener un parámetro de ruta opcional en la ruta Angular 2? Probé la sintaxis de Angular 1.x en RouteConfig pero recibí el siguiente error:

"EXCEPCIÓN ORIGINAL: La ruta "/user/:id?" contiene "?", que no está permitido en una configuración de ruta".

@RouteConfig([
{
    path: '/user/:id?',
    component: User,
    as: 'User'
}])
Jeroen avatar Dec 11 '15 01:12 Jeroen
Aceptado

Puedes definir múltiples rutas con y sin parámetro:

@RouteConfig([
    { path: '/user/:id', component: User, name: 'User' },
    { path: '/user', component: User, name: 'Usernew' }
])

y manejar el parámetro opcional en su componente:

constructor(params: RouteParams) {
    var paramId = params.get("id");

    if (paramId) {
        ...
    }
}

Consulte también el problema relacionado con github: https://github.com/angular/angular/issues/3525

rerezz avatar Dec 21 '2015 14:12 rerezz
{path: 'users', redirectTo: 'users/', pathMatch: 'full'},
{path: 'users/:userId', component: UserComponent}

De esta manera, el componente no se vuelve a representar cuando se agrega el parámetro.

Martin Cremer avatar Mar 07 '2018 18:03 Martin Cremer