Я хочу загрузить другой модуль в корневой маршрут моего приложения в зависимости от группы / роли текущего пользователя.У меня есть класс обслуживания, где я могу получить группу текущего пользователя, тогда я хотел бы загрузить ленивый модуль на основе этой группы.Вопрос в том, как я могу это сделать: как определить условную загрузку модуля с отложенной загрузкой ( loadChildren свойство )?Каков наилучший способ сделать это?
Я думаю, что эти решения:
1 - внедрить службу в app-routing.module и выполнить условие if else для свойства loadChildren, например: loadChildren: this.service.group === 'A' ? #moduleA : #moduleB
.Это возможно?Если да, можно ли внедрять сервисы в модули маршрутов?
2 - я мог бы использовать специальную защиту для корневого маршрута, а затем сделать перенаправление.В этом случае я бы использовал canLoad, поскольку я не хочу модулировать загрузку событий, если группа не совпадает ([ Разница между canLoad и AngActivate Angular? ).Если это так, мне нужно определить, является ли текущий маршрут корневым для применения перенаправления.
У меня есть следующий код:
const routes: Routes = [
{
path: '',
loadChildren: './moduleOne.module#moduleOne', //the module that will be
//loaded will depends on the group of current user.
canActivate: [AuthGuard]
},
Спасибо всем!