angular - 如何使子路由在 AngularDart 中工作?
问题描述
我为我的问题创建了一个小型存储库:https ://github.com/zegkljan/angular-dart-router-test
应用程序做什么(或应该做什么)
在“主页”页面上有一个项目列表。您可以单击项目来查看项目本身。在项目视图中,您有两个按钮,单击时会在按钮下方显示项目的基本/高级详细信息。
技术观点
AppComponent
(根组件)<router-outlet>
用于显示子组件,该子组件要么是ItemListComponent
(在 path 上显示列表/items
),要么是ItemComponent
显示项目本身(在 path 上/items/:id
)的子组件。项目列表中的链接[routerLink]
用于导航到,顶部ItemComponent
的链接用于导航到。home
ItemListComponent
ItemComponent
有自己的<router-outlet>
和一组路径,其部分是项目的路径(即/items/:id
)。这些路径是/basic
和/advanced
相对于项目路径的(因此基本细节的完整路径是/items/:id/basic
)。
问题是什么
单击基本/高级按钮时,即使传递给(在调用之前打印的)正确的 url navigate()
,路由器的方法也会返回(因此没有导航)。如果您克隆/下载 repo 并运行应用程序,请打开浏览器控制台并观察。NavigationResult.INVALID_ROUTE
navigate()
navigate()
我做错了什么,或者我对 AngularDart 路由器以及子路由的工作方式有什么误解?
解决方案
您在此处的指令列表中缺少RouterOutlet
指令(或routerDirectives
包含): https ://github.com/zegkljan/angular-dart-router-test/blob/master/lib/src/item/item_component.dart# L23RouterOutlet
ItemComponent
推荐阅读
- oracle - 如何在oracle表单12c中为Shift + A按键创建触发器
- python-3.x - 在 jmespath.search 中使用 python 变量
- java - Java - 算术计算
- database - 如何查询数据库中的数百万行或文档?
- typescript - 如何解决 typescript 对 Array.includes() 过于严格的问题
- laravel - 我收到错误 bind: address already in use with running Laravel app under jwilder/nginx-proxy
- architecture - Aws IAM 策略或 GCP 策略评估的系统设计
- reactjs - 如何使用当前项目引用树节点
- reactjs - 线性梯度反应原生问题
- excel - 我可以使用来自不同表源的日期过滤 excel 动态表吗?