Puoi navigare verso il percorso corrente con nuovi parametri di query, che non ricaricheranno la tua pagina, ma aggiorneranno i parametri di query.
Qualcosa come (nel 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
});
}
Nota che, sebbene non ricarichi la pagina, inserirà una nuova voce nella cronologia del browser. Se vuoi sostituirlo nella cronologia invece di aggiungere nuovo valore lì, puoi usare { queryParams: queryParams, replaceUrl: true }
.
EDIT: come già sottolineato nei commenti, []
e la relativeTo
proprietà mancava nel mio esempio originale, quindi avrebbe potuto cambiare anche il percorso, non solo i parametri di query. L' this.router.navigate
utilizzo corretto sarà in questo caso:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
L'impostazione del nuovo valore del parametro su null
rimuoverà il parametro dall'URL.
[]
invece di['.']
farlo funzionare