Parámetro de ruta opcional de Angular 2
¿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'
}])
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
{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.