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 relativeTo
Eigenschaft in meinem ursprünglichen Beispiel, sodass auch die Route geändert werden konnte, nicht nur die Abfrageparameter. Die ordnungsgemäße this.router.navigate
Verwendung ist in diesem Fall:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
Wenn Sie den neuen Parameterwert auf setzen, null
wird der Parameter aus der URL entfernt.
[]
anstatt es['.']
zum Laufen zu bringen