Маршрутизация на именованный выход из ссылок в компоненте навигации завершается неудачно только при использовании [routerLink] - PullRequest
1 голос
/ 26 сентября 2019

Мое приложение получает ошибку, когда я пытаюсь направить к названному выходу, используя эту ссылку в html:

<a [routerLink]=.../> 

Но тот же маршрут работает с использованием this.router.navigate из функции обработчика ts.

Следующая проблема StackBlitz показывает проблему: StackBlitzNavErrorExample

Нажмите «CarLink», который показывает простую страницу навигации, затем обратите внимание, как работает кнопка «Изменить», но ссылка «GI Link "нет.Но маршрутизация выглядит одинаково для меня.Я хочу использовать [routerLink] =, поэтому я также могу использовать routerLinkActive = "myClass", чтобы выделить выделенную ссылку.

Я получаю следующую ошибку, даже если не изменяю маршрут для основного выхода:

ERROR
Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'car/9'
Error: Cannot match any routes. URL Segment: 'car/9'

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Поскольку вы настроили маршруты на корневом уровне, вы должны переместить свой названный выход маршрутизатора в app.component.html

app.module.ts

const routes: Routes = [
      { path: 'car/:id', component: CarComponent},
      { path: 'gi/:otherId', component: GIComponent, outlet: 'center'}
]

app.component.html

  <a [routerLink]="['car', '9']" > Car Link </a>
    <router-outlet></router-outlet>   
    <router-outlet name="center"></router-outlet>

ForkedExample

1 голос
/ 26 сентября 2019

изменить на это в HTML

<a [routerLink]="['',{ outlets: { center: ['gi', 10] } }]" > GI Link </a>
...