const routes: Routes = [
{
path: ':parent_id',
canActivate: [FirstDefaultChildGuard],
component: ParentComponent,
children: [
{
path: 'abc',
children: [
{
path: ':child_id',
component: ChildComponent
}
],
},
// ...other children
],
},
];
我有一个具有上述结构的应用程序。我想要的是每当打到/some_parent_id
之类的URL时,它就会调用我的FirstDefaultChildGuard
,并且基于数据库中的配置数据,我可以将其重定向到适当的子路由/some_parent_id/abc/some_child_id
。 / p>
因此,如果用户点击的第一个网址为/parent_1
,则可以正常重定向到/parent_1/abc/child_1
。
但是,如果用户随后导航到另一个孩子,请说/parent_1/abc/child_2
并刷新它首先打到我的FirstDefaultChildGuard
的页面,然后导航回child_1
而不是停留在{{1 }}。
现在,如果我可以在警卫中访问child_2
,则可以解决此问题,但是似乎在警卫:child_id
中,我只能访问与警卫相同级别或更高级别的参数。因此,即使我的完整网址是ActivatedRouteSnapshot
,我也只能在路由参数中看到{parent_id:'parent_1'}。
我似乎只是想不出一种更优雅地处理此问题的方法,也想不出使用regex解析url以外的方法以防卫我是否知道自己的/parent_1/abc/child_2
是否已经路由。