Как изменить вторичный маршрут в Angular? - PullRequest
0 голосов
/ 17 октября 2019

Это мой app.routing.module.ts файл

  { path: 'admin', component: AdminComponent,
    children: [
      { path: 'driverregister',outlet: 'adminnavbar', component: RegisterdriverComponent},
      { path: 'viewdrivers',outlet: 'adminnavbar', component: ViewdriversComponent},
      { path: 'editdriverdetails',outlet: 'adminnavbar', component: EditdriverdetailsComponent},
    ]
  },

После нажатия на следующую ссылку маршрутизатора

[routerLink]="[{outlets: {'adminnavbar': 'driverregister'}}]"

мой URL отображается как

http://localhost:4200/admin/(adminnavbar:viewdrivers)

Теперь я хочу изменить свой URL на

http://localhost:4200/admin/(adminnavbar:editdriverdetails)

Я пытался использовать

[routerLink]="[{outlets: {'adminnavbar': 'editdriverdetails'}}]"

но это не сработало. В консоли отображается следующая ошибка:

Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'admin' Error: Cannot match any routes. URL Segment: 'admin'

Как решить эту проблему?

1 Ответ

3 голосов
/ 17 октября 2019

Информация в [routerLink] представляет собой массив команд. По умолчанию routerLink относится к вашему текущему маршруту. Если вы уже используете http://localhost:4200/admin/(adminnavbar:viewdrivers), то при использовании [routerLink]="[{outlets: {'adminnavbar': 'editdriverdetails'}}]" Angular будет использовать текущий маршрут в качестве базового. То, что вы хотите, это вернуться к базовому маршруту admin.

. Он должен выглядеть следующим образом [routerLink]="['/admin', {outlets: {'adminnavbar': 'editdriverdetails'}}]". Это говорит:

  1. Сначала идите по маршруту /admin
  2. Затем перейдите к выходу (adminnavbar:viewdrivers)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...