Angular ищет маршрут в дереве DI - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу перенаправить маршрут в мою охрану, но Angular пытается получить зависимость с помощью StaticInjector, используя URL-маршрут в качестве токена. Я никогда не видел ничего подобного, и я не понимаю, в чем заключается соглашение между маршрутами и DI.

Исключение составляет:

ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[/unauthorized]: 
  StaticInjectorError(Platform: core)[/unauthorized]: 
    NullInjectorError: No provider for /unauthorized!
Error: StaticInjectorError(AppModule)[/unauthorized]: 
  StaticInjectorError(Platform: core)[/unauthorized]: 
    NullInjectorError: No provider for /unauthorized!
    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:1062)
    at resolveToken (core.js:1300)
    at tryResolveToken (core.js:1244)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)
    at resolveToken (core.js:1300)
    at tryResolveToken (core.js:1244)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)
    at resolveNgModuleDep (core.js:8376)
    at _createProviderInstance (core.js:8399)
    at resolveNgModuleDep (core.js:8356)
    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:1062)
    at resolveToken (core.js:1300)
    at tryResolveToken (core.js:1244)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)
    at resolveToken (core.js:1300)
    at tryResolveToken (core.js:1244)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)
    at resolveNgModuleDep (core.js:8376)
    at _createProviderInstance (core.js:8399)
    at resolveNgModuleDep (core.js:8356)
    at resolvePromise (zone.js:814)
    at resolvePromise (zone.js:771)
    at zone.js:873
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:3815)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
    at drainMicroTaskQueue (zone.js:595)

Вот защитный код:

return this.permissionService.checkAuthorization(permissionName)
  .then(permissionResult => {
    if (this.failUrl && !permissionResult) {
      this.router.navigate([this.failUrl]);
    }
    return permissionResult;
  });

Пожалуйста, помогите мне.

...