Kind guard: canActivateChild nicht funktioniert

Habe ich versucht, ein Kind zu bewachen, wie den eckig doc:

@Injectable()
export class AuthGuardService implements CanActivate, CanActivateChild {

  constructor(private authService: AuthentificationService, private router: Router) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
    let url: string = state.url;

    return this.checkLogin(url);
  }

  canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
    return this.canActivate(route, state);
  }

  checkLogin(url: string): boolean {
    /*****/
    return false;
  }
}

Mein routing.Modul:

import { AuthGuardService } from '../services/auth-guard.service';

const routes = [
    {
        path: '',
        component: MyComponent,
        canActivate: [AuthGuardService],
        children: [{
            path: '',
            canActivateChild: [AuthGuardService],
            children: [
                {
                    path: 'candidature',
                    component: ListCandidatureComponent,
                },
                {
                    path: 'candidature/new',
                    component: NewCandidatureComponent
                }]
        }, {
            path: 'login',
            component: LoginComponent,

        }]
    }
]

Legte ich meine canActivateChild Wache auf der Komponenten-weniger Teil, zu bewachen dieses routing durch eine Authentifizierung.

Aber mit dieser Konfiguration, wenn ich versuchte Sie zu erreichen 'my.site.com/candidature" ich habe diesen Fehler:

Unhandled Promise rejection: guard is not a function ; Zone: angular ; Task: Promise.then ; Value: TypeError: guard is not a function

Normalerweise, wenn ich mich nicht authentitcated, muss ich auf die Anmeldeseite umgeleitet.
Hat jemand diese Fehlermeldung oder weiß, warum es Mittagessen?

Danke

Schreibe einen Kommentar