Puede navegar a la ruta actual con nuevos parámetros de consulta, que no volverán a cargar su página, pero actualizarán los parámetros de consulta.
Algo como (en el componente):
constructor(private router: Router) { }
public myMethodChangingQueryParams() {
const queryParams: Params = { myParam: 'myNewValue' };
this.router.navigate(
[],
{
relativeTo: activatedRoute,
queryParams: queryParams,
queryParamsHandling: 'merge', // remove to replace all query params by provided
});
}
Tenga en cuenta que, si bien no volverá a cargar la página, enviará una nueva entrada al historial del navegador. Si desea reemplazarlo en el historial en lugar de agregar un nuevo valor allí, puede usar { queryParams: queryParams, replaceUrl: true }
.
EDITAR: Como ya se señaló en los comentarios, []
y la relativeTo
propiedad faltaba en mi ejemplo original, por lo que también podría haber cambiado la ruta, no solo los parámetros de consulta. El this.router.navigate
uso adecuado será en este caso:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
Establecer el nuevo valor del parámetro en null
eliminará el parámetro de la URL.
Radosław Roszkowiak
fuente
[]
lugar de['.']
hacerlo funcionarthis.activatedRoute.queryParams.subscribe
y hacer varias actualizaciones en su componente, pero ¿existe una forma angular simple de cargar la ruta de manera que el avance y el retroceso funcionen automáticamente?