を働いていないcanActivateChild:私はコンポーネントの上に私のcanActivateChildガードを入れ子供ガード:私は角のdocのような場所で子供ガードを入れてみました
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,
}]
}
]
:
@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;
}
}
マイrouting.module
無関係な部分であり、認証によってこの経路を保護する。が、私は「my.site.com/candidature」に到達しようとしたときに、この構成では、私はこのエラーを持っている:私はauthentitcatedないよ場合
Unhandled Promise rejection: guard is not a function ; Zone: angular ; Task: Promise.then ; Value: TypeError: guard is not a function
は通常、私はリダイレクトする必要がありますログインページに移動します。 誰かがこのエラーを受けたり、なぜそれがランチされたのかを知っていますか?
感謝の