Ви можете перейти до поточного маршруту за допомогою нових параметрів запитів, які не перезавантажать вашу сторінку, але оновлять параметри запитів.
Щось на зразок (у складі):
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
});
}
Зауважте, що, хоча вона не перезавантажить сторінку, це підштовхне новий запис до історії браузера. Якщо ви хочете замінити його в історії замість того, щоб додавати там нове значення, ви можете використовувати { queryParams: queryParams, replaceUrl: true }
.
EDIT: Як уже вказувалося в коментарях, []
і relativeTo
властивість відсутня в моєму первісному прикладі, тому вона могла змінити і маршрут, а не лише параметри запитів. Правильне this.router.navigate
використання буде в цьому випадку:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
Якщо встановити нове значення параметра null
, вилучите параметр з URL-адреси.
[]
замість того,['.']
щоб це спрацювало