是否可以使用 配置“终端”路由children
,或者换句话说,使用“可选”配置路由children
。
我正在尝试创建一个可路由的主/详细视图,其中最初不显示详细信息,并且在打开详细信息视图时列表不会被破坏。
例如,导航到/a
,然后在不破坏的情况下a
导航到/a/1
。
第一次尝试:
const routes: RouterConfig = [
//...
{ path: 'a', component: AListComponent, children: [
{ path: ':id', component: ADetailsComponent }
]},
//...
];
...使用此配置,将引发以下错误:
EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'a'
第二次尝试:
const routes: RouterConfig = [
//...
{ path: 'a', component: AListComponent },
{ path: 'a', component: AListComponent, children: [
{ path: ':id', component: ADetailsComponent }
]},
//...
];
...列表组件被销毁并重新创建,即如果它有用户输入,则值消失了。
第三次尝试- 创建一个“空”组件并默认加载它。
const routes: RouterConfig = [
//...
{ path: 'a', component: AListComponent, children: [
{ path: '', component: EmptyComponent },
{ path: ':id', component: ADetailsComponent }
]},
//...
];
...有效,但感觉像是一种解决方法。
有没有更好的办法?