【发布时间】:2017-03-30 10:20:01
【问题描述】:
我是 Angular 2 的新手。在 Angular.io 路由教程中,我看到 ActivatedRouteSnapShot 和 RouterStateSnapshot 总是在 AuthGuard 函数中声明(注入):canActivate、canActivateChild、resolve ...。 但是,通常只使用 1 个。您可以在下面看到:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
let url: string = state.url;
return this.checkLogin(url);
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<Crisis> {
let id = route.params['id'];
return this.cs.getCrisis(id).then(crisis => {
if (crisis) {
return crisis;
} else { // id not found
this.router.navigate(['/crisis-center']);
return null;
}
});
}
那么为什么总是需要同时注入呢?
【问题讨论】: