Я хочу перенаправить маршрут в мою охрану, но 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;
});
Пожалуйста, помогите мне.