Угловая - условная загрузка модуля при отложенной загрузке - PullRequest
0 голосов
/ 24 ноября 2018

Я хочу загрузить другой модуль в корневой маршрут моего приложения в зависимости от группы / роли текущего пользователя.У меня есть класс обслуживания, где я могу получить группу текущего пользователя, тогда я хотел бы загрузить ленивый модуль на основе этой группы.Вопрос в том, как я могу это сделать: как определить условную загрузку модуля с отложенной загрузкой ( 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]
},

Спасибо всем!

...