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

Я создал небольшой репозиторий со своей проблемой: https://github.com/zegkljan/angular-dart-router-test

Что приложение делает (или должно делать)

В «доме»На странице есть список предметов.Вы можете щелкнуть по элементам, чтобы увидеть сам элемент.В представлении элемента у вас есть две кнопки, которые при нажатии отображают базовые / расширенные сведения об элементе непосредственно под кнопками.

Техническая точка зрения

AppComponent (корневой компонент) имеет <router-outlet>, который используется для отображения дочернего компонента, который является либо ItemListComponent (который отображает список по пути /items), либо ItemComponent, который отображает сам элемент (включенпуть /items/:id).Ссылки в списке элементов используют [routerLink] для перехода к ItemComponent, а ссылка home вверху для перехода к ItemListComponent.

ItemComponent имеет свой собственный <router-outlet> инабор путей, частью которых является путь к элементу (т. е. /items/:id).Эти пути /basic и /advanced относятся к пути элемента (поэтому полный путь к основным сведениям будет /items/:id/basic).

В чем проблема

При нажатии основных / расширенных кнопок метод navigate() маршрутизатора возвращает NavigationResult.INVALID_ROUTE (и, следовательно, нет навигации), даже если URL-адрес, переданный в navigate() (печатается непосредственно перед вызовом navigate()), равенправильный.Если вы клонируете / загружаете репозиторий и запускаете приложение, открываете консоль браузера и наблюдаете.

Что я делаю неправильно или что я неправильно понял в отношении маршрутизатора AngularDart и как работают дочерние маршруты?

1 Ответ

1 голос
/ 21 июня 2019

Вам не хватает директивы RouterOutlet (или routerDirectives, которая включает RouterOutlet) в списке директив ItemComponent здесь: https://github.com/zegkljan/angular-dart-router-test/blob/master/lib/src/item/item_component.dart#L23

...