Модули не разделены ролями вашего приложения. Разделение модулей - это процесс разделения вашего кода без каких-либо сложностей, если в случае использования component
, который необходимо использовать в нескольких местах, вы можете переместить этот компонент вмодуль shared
и import
этот модуль во все ваши субмодули - если вы хотите загрузить модуль Lazily, вы можете поработать над загрузкой модуля Lazily
В вашем случае - слово route
дляВы - вы можете проверить, есть ли у пользователя admin
или non-admin
во время маршрутизации, чего можно достичь с помощью Resolver
, который делает магию для вас - проверьте эту ссылку для дальнейших запросов
Попробуйте что-то вроде этого
Маршрутизатор
{
path: 'pathName',
component: ComponentName,
resolve: { RolePermission: RolePermissionService },
}
RolePermissionService
@Injectable({
providedIn: 'root'
})
export class RolePermissionService implements Resolve<object | string> {
constructor(private router: Router) {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | string> | Promise<boolean | string> {
return new Promise(resolve => {
return resolve(true);
// Your logic here - Call the service to check whether admin or non-admin
// Bind the data in your route or you can navigate from here
});
}
}
Таким образом, возвращаемые данные будут привязанык объекту RolePermission
в вашем маршруте, и, наконец, вы можете прочитать его в своем component
Компоненте
В вашем компоненте вы можете читать эти данные следующим образом
this._activatedRoute.snapshot.data["RolePermission"].ISSubmitSlotRequest;
Таким образом, это решит вашу проблему: вы можете сопоставить этот сервис со всеми нужными маршрутами и получить роль пользователя - я не против создания модуля, это будет лучший способ прочитать роли в маршрутизации - проверьте, чтоссылка для большей идеи - Счастливое кодирование:)