Cannot resolve all settings for CanActivate router

I am trying to implement defensive protection https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-child-guard

but I get a DI error, I really don't know why I am inserting my UserService into my module.

My RouteGuard declared in the global module, and my UserService too

  @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [ TranslateModule ], exports: [ LoadingComponent, ], declarations: [ LoadingComponent, ], entryComponents: [], providers: [UserService,RouteGuard] }) export class GlobalModule { } 

Error:

  Uncaught SyntaxError {__zone_symbol__error: Error: Can't resolve all parameters for RouteGuard: ([object Object], ?). at SyntaxError.ZoneAwa…, _nativeError: ZoneAwareError} 

code

 import { ParentClass } from 'components'; import { Injectable } from '@angular/core'; import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { UserService } from '../../modules/user/user.service'; import { User } from 'models'; @Injectable() export class RouteGuard extends ParentClass implements CanActivate { constructor( private router: Router, private userService: UserService ) { super(); } public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> { debugger; return this.userService.getUser(this.subId()).toPromise().then( (data) => { this.setLoggedUser(data); if (!this.isAdministrator()) { this.router.navigate(['']); return false; } return true; }).catch((err) => { this.error(err); }); } } 
+5
source share

Source: https://habr.com/ru/post/1265740/


All Articles