Инъекция зависимости от маршрутизации - PullRequest
1 голос
/ 06 апреля 2020

Допустим, у нас есть модуль A, и в нем у меня есть несколько дочерних компонентов, которые защищены canActivate, поэтому мой вопрос здесь заключается в том, должен ли я добавить свою защиту canActivateRouting к поставщику app.module.ts или moduleA.module.ts? а почему?

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете обеспечить охрану в любом модуле, но я бы предпочел предоставить его в app.module.ts. Таким образом, когда вы определяете свои маршруты, вам нужно указать только один раз сторож, и все дочерние маршруты в moduleA.module.ts будут защищены.

Так что ваши маршруты app.module будут включать это (обратите внимание, я также отложенная загрузка маршрутов ):

...
{
  path: 'module-path',
  loadChildren: () => import('./path/to/module').then(m => m.MyModule),
  canActivate: [MyGuard]
},
...

и ваши дочерние маршруты moduleA.module должны выглядеть примерно так:

...
{ path: 'a', component: MyAComponent },
{ path: 'b', component: MyBComponent },
{ path: 'b:id', component: MyBComponent }
...

Каждый из дочерних маршрутов будет быть защищенным охранником.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...