У меня есть навигация с тремя подменю и соответствующими им маршрутами детей.Теперь некоторые из подменю не видны (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
в случае, например, если подменю1 невидимо и маршрутизатор выберет следующий возможный маршрут(перенаправить на подменю2 ).
Проблема с моим подходом заключается в том, что redirectTo
выполняется даже до вызова моего canActivate
-метода.
Что былучший способ сделать это?