У меня есть маршрут с двумя параметрами, и я пытаюсь обновить его (только 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
});