Мой маршрутизатор выглядит как Полный пример здесь в StackBlitz :
const eventChildren = [
{ path: 'new', component: FooEditComponent }
];
const appRoutes : Routes = [
{ path: '', redirectTo: '/foos' , pathMatch: 'full'},
{ path: 'foos/:year/:month/:day', component: FoosComponent, children: eventChildren}
]
Когда пользователь перемещается по строке URL, вставляя этот адрес в строку URL: https://angular-tfty2q.stackblitz.io/foos/2020/4/20/new все работает как положено (дочерний компонент FooEditComponent
отображается должным образом).
Но когда пользователь сначала переходит к https://angular-tfty2q.stackblitz.io/foos/2020/4/20/, а затем пытается перейти на тот же «Новый» адрес маршрута (программно) из HeaderComponent
(родитель), нажав «Новый» li
с:
header.component.html
:
<ul>
<li style="cursor: pointer;"><a (click)="onNewClick()">New</a></li>
</ul>
header.component.ts
:
onNewClick() {
this.router.navigate(['new'], {relativeTo: this.route});
}
Это привело к ошибке:
ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: «новый»
Я уже пробовал различные похожие ответы, такие как ( 1 , 2 , 3 ) без прогресса .