Angular 5: доступ к неглобальной службе из службы охраны маршрута - PullRequest
0 голосов
/ 10 мая 2018

В моем приложении у меня есть родительский маршрут с серией дочерних маршрутов:

{
  path: 'parent',
  component: ParentComponent,
  children: [
    { path: 'child1', component: Child1 },
    { path: 'child2', component: Child2 }
  ]
}

У меня настроен неглобальный сервис (MyService) в качестве поставщика в ParentComponent, который внедряется в оба дочерних компонента.

Теперь я хочу добавить защиту маршрута ко второму дочернему компоненту, задав определение маршрута следующим образом:

{
  path: 'parent',
  component: ParentComponent,
  children: [
    { path: 'child1', component: Child1 },
    { path: 'child2', component: Child2, canActivate: [MyGuard] }
  ]
}

Как я могу получить доступ к MyService из MyGuard? Если я попытаюсь ввести его как обычно, я получу ошибку no provider for MyService.

Я вижу, что охранник маршрута canActivate может принимать параметр route: ActivatedRouteSnapshot, и этот параметр имеет свойство component. Однако это свойство не является экземпляром компонента, оно просто является определением класса для компонента. Я должен сам создать экземпляр компонента?

Как я могу получить доступ к нужной мне услуге?

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