如何使子路线在AngularDart中工作?

时间:2019-06-15 20:46:17

标签: angular routing angular-dart angular-dart-routing

我创建了一个小型存储库,遇到了问题: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 个答案:

答案 0 :(得分:1)

您在RouterOutlet的指令列表中缺少routerDirectives指令(或包括RouterOutlet的{​​{1}},https://github.com/zegkljan/angular-dart-router-test/blob/master/lib/src/item/item_component.dart#L23