I want my homepage load different modules for different roles
const routes: Routes = [
{
path: 'login',
component: LoginComponent,
},
{ path: '', loadChildren: './dashboard/dashboard.module#DashboardModule', canLoad: [AuthGuard], canActivate: [AuthGuard], },
{
path: '',
loadChildren: './dashboard/dashboard.module#DashboardModule',
canActivate: [true]
},
]
AuthGuard here
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<boolean> | Promise<boolean> | boolean {
if (localStorage.getItem('ISTRAINER') === Role.Trainer
&& next.routeConfig.loadChildren === './dashboard/dashboard.module#DashboardModule') {
return true;
}
return false;
}
canLoad(route: Route): boolean {
return false;
}
when canLoad: [AuthGuard] returns false router is not checking for next route
or is there a way to change loadChildren depending on Route
actually I want to achive that on login lets say on route "Dashboard" or on "" Student module loads if student role is logedin on route "Dashboard" or on "" Trainer module loads if Trainer role is logedin on route "Dashboard" or on "" Admin module loads if Admin role is logedin