Я создал небольшой репозиторий со своей проблемой: 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 и как работают дочерние маршруты?