我有一个带有三个子菜单及其相应子路线的导航。现在某些子菜单不可见 (ngIf),这取决于用户从服务器获得的声明。
点击主菜单,我重定向到其中一个子菜单,但有时无法访问此子菜单 - 然后我想重定向到下一个兄弟:
{
path: 'mymainmenue',
children: [
{ path: 'submenu1', component: SubMenu1Component },
{ path: 'submenu2', component: SubMenu2Component },
{ path: 'submenu3', component: SubMenu3Component },
{ path: '', redirectTo: 'submenu1' },
]
}
现在我可以计算出“有时”。我尝试使用空路径 ('') 和CanActivate
-Guard 创建三个路由。与此类似:
{
path: 'mymainmenue',
children: [
{ path: 'submenu1', component: SubMenu1Component },
{ path: 'submenu2', component: SubMenu2Component },
{ path: 'submenu3', component: SubMenu3Component },
{ path: '', redirectTo: 'submenu1', canActivate: [ClaimsGuard] },
{ path: '', redirectTo: 'submenu2', canActivate: [ClaimsGuard] },
{ path: '', redirectTo: 'submenu3', canActivate: [ClaimsGuard] },
]
}
希望我可以使用路由和我的规则返回false
,例如submenu1是不可见的并且路由器会选择下一个可能的路由(重定向到submenu2)。
我的方法的问题是它redirectTo
甚至在我的canActivate
-method 被调用之前就被执行了。
最好的方法是什么?