Espero que ayude a alguien más.
La pregunta anterior establece que el valor del parámetro de consulta es necesario después de que la página ha sido redirigida y podemos suponer que el valor de la instantánea (la alternativa no observable) sería suficiente.
Nadie aquí mencionó acerca de snapshot.paramMap.get de la documentación oficial .
this.route.snapshot.paramMap.get('id')
Entonces, antes de enviarlo, agregue esto en el componente de envío / redireccionamiento:
import { Router } from '@angular/router';
luego redirija como cualquiera (documentado aquí ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
o simplemente:
this.router.navigate(['/heroes', heroId ]);
Asegúrese de haber agregado esto en su módulo de enrutamiento como se documenta aquí :
{ path: 'hero/:id', component: HeroDetailComponent }
Y finalmente, en su componente que necesita usar el parámetro de consulta
agregar importaciones (documentado aquí ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
inyectar ruta activada
(la documentación también importa switchMap y también inyecta Router y HeroService, pero son necesarios solo para una alternativa observable; NO son necesarios cuando se utiliza la alternativa de instantánea como en nuestro caso):
constructor(
private route: ActivatedRoute
) {}
NOTA: SI AGREGA EL MÓDULO DE ENRUTAMIENTO A UN MÓDULO DE CARACTERÍSTICAS (COMO SE MUESTRA EN LA DOCUMENTACIÓN) ASEGÚRESE DE QUE EN APP.MODULE.ts ESTE MÓDULO DE ENRUTAMIENTO VIENE ANTES de AppRoutingModule (u otro archivo con rutas de aplicación de nivel raíz) EN IMPORTACIONES: []. DE LO CONTRARIO, NO SE ENCONTRARÁN RUTAS DE CARACTERÍSTICAS (COMO LLEGARÍAN DESPUÉS de {ruta: '**', redirigir a: '/ no encontrado'} y solo verá un mensaje no encontrado).
@RouteConfig
para estopath
?