2
각도 라우터에서 사용되는 canActivate
보호 장치를 구성 할 수있는 방법이 있습니까?각도 라우터 보호 구성
@Injectable()
export class SessionGuard implements CanActivate {
public requireLeagues: boolean = true;
constructor(private authService: AuthService, private session: SessionService, private router: Router) {
}
async canActivate(): Promise<boolean> {
if (!this.authService.isLoggedIn) {
return false;
}
await this.session.start();
if (this.requireLeagues && (!this.session.leagues || this.session.leagues.length == 0)) {
//Redirect to create league page
this.router.navigate(['/create-league']);
return false;
} else {
return true;
}
}
}
그리고이 경로 :
이 SessionGuard
를 갖는
const routes: Routes = [
{path: '', component: HomeComponent, canActivate: [AuthGuard, SessionGuard]},// <-- requireLeagues = false
{path: 'login', component: LoginComponent},
{path: 'leagues', component: [AuthGuard, SessionGuard]},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
}
내가 참 또는 거짓이 새로운, 다른 가드를 만들 필요 withouth 경로에 따라에 requireLeagues
를 설정하고 싶습니다. 이것이 가능한가?