我创建了一个小型存储库,遇到了问题: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路由器以及子路由如何工作有误解?
答案 0 :(得分:1)
您在RouterOutlet
的指令列表中缺少routerDirectives
指令(或包括RouterOutlet
的{{1}},https://github.com/zegkljan/angular-dart-router-test/blob/master/lib/src/item/item_component.dart#L23