#angular
#angular
Вопрос:
Вот мой код:
<span *ngIf="markup.baseline">
<mat-icon [routerLink]="['/default-markup', markup.id]">edit</mat-icon>
</span>
<span *ngIf="markup.baseline == 0">
<mat-icon [routerLink]="[markup.id]">edit</mat-icon>
</span>
Первая ссылка, где URL-адрес должен быть «default-markup / 14», не работает.
Он работает правильно для второго условия.
Ошибка
core.js:6014 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'default-markup/14
Вот код в модуле маршрутизации:
{path: ':client', component: MarkupsListComponent, },
{path: ':client/default-markup', component: MarkupsBaselineComponent,},
{path: ':client/default-markup/:rule_id', component: MarkupsBaselineComponent,},
{path: ':client/:rule_id', component: MarkupsDetailComponent,},
Комментарии:
1. что появляется в URL-адресе, когда вы нажимаете
[routerLink]="[markup.id]"
на ссылку?2. Мой текущий URL-адрес страницы — markups / brookshuff. Когда я нажимаю на [markup.id ], это относится к markups/brookshuff /12. Я хочу, чтобы для другого условия он должен перейти в markups/brookshuff/default-markup /14
3. Просто попробуйте удалить
/
раньшеdefault-markup
. Попробуйте[routerLink]="['default-markup', markup.id]"
4. Добавлен ответ. Пожалуйста, проверьте, спасибо 🙂
Ответ №1:
Вы должны удалить /
перед /default-markup
. Когда вы указываете /
в URL-адресе, он рассматривает его из корневого маршрута, в противном случае он будет относительно текущего маршрута.
Используйте ниже
[routerLink]="['default-markup', markup.id]"
Ответ №2:
вы должны передать идентификатор клиента для каждого маршрута, изменив его следующим образом,
<span *ngIf="markup.baseline">
<mat-icon [routerLink]="['/', clientId,'default-markup',markup.id]>edit</mat-icon>
</span>
<span *ngIf="markup.baseline == 0">
<mat-icon [routerLink]="[clientId]">edit</mat-icon>
</span>