Обновление параметров в маршруте Angular - PullRequest
0 голосов
/ 25 октября 2019

У меня есть маршрут с двумя параметрами, и я пытаюсь обновить его (только URL-адрес, забудьте о содержимом компонента, также я не хочу обновлять страницу или что-то еще, просто обновить маршрут), но я не могусделай это. Мой маршрут:

const routes: Routes = [
{ path: "levs", component: MainComponent },
{ path: "levs/:levType", component: LevDetailsComponent },
{ path: "levs/:levType/:levId", component: EntityDetailsComponent }
];

Итак, когда я нахожусь в EntityDetailsComponent и мой URL-адрес: levs/someLev/someLevId У меня есть список других объектов. При нажатии я хочу обновить URL следующим образом: levs/clickedLev/clickedLevId. Я пытался сделать это из html с помощью ссылки роутера:

<li [routerLink]="[type.entityType, type.entityName]">lev</li>

или

<li [routerLink]="['/levs', type.entityType, type.entityName]">lev</li>

, но в обоих случаях, похоже,добавив его к существующему маршруту следующим образом: levs/someLev/someLevId/levs/clickedLev/clickedLevId Я пытался из EntityDetailsComponent.ts с маршрутизатором:

this.router.navigate('/levs',[this.entityType, this.entityIdentifier]);

А также без levs перед параметрами, но результат тот же.

Я нашел это решение: Обновление параметров маршрута в угловых 5

но эти парни, они просто добавляют числа к маршруту, я не хочу увеличивать свои параметры, но изменяюих подход не работает для меня. Буду признателен за любую помощь!

РЕШЕНИЕ Спасибо @armandyjoe за помощь. Это сработало для меня, мне просто пришлось настроить переданный URL и использовать replaceURL true.

this.router.navigate(["/dct/levs/", this.entityType, this.entityIdentifier], { replaceUrl: true });

1 Ответ

2 голосов
/ 25 октября 2019
this.router.navigate(['/yoururl'], { queryParams: { type: someVariable, entity: someVariable } });

Надеюсь, эта помощь!

С уважением

...