Sie können mit neuen Abfrageparametern zur aktuellen Route navigieren, wodurch Ihre Seite nicht neu geladen, sondern die Abfrageparameter aktualisiert werden.
So etwas wie (in der Komponente):
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
});
}
Beachten Sie, dass die Seite zwar nicht neu geladen wird, jedoch ein neuer Eintrag in den Browserverlauf verschoben wird. Wenn Sie es im Verlauf ersetzen möchten, anstatt dort einen neuen Wert hinzuzufügen, können Sie es verwenden { queryParams: queryParams, replaceUrl: true }.
BEARBEITEN: Wie bereits in den Kommentaren erwähnt, fehlte []die relativeToEigenschaft in meinem ursprünglichen Beispiel, sodass auch die Route geändert werden konnte, nicht nur die Abfrageparameter. Die ordnungsgemäße this.router.navigateVerwendung ist in diesem Fall:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
Wenn Sie den neuen Parameterwert auf setzen, nullwird der Parameter aus der URL entfernt.
[]anstatt es['.']zum Laufen zu bringen