小编The*_*mjx的帖子

为什么我们总是要在 AuthGuard 中同时注入 ActivatedRouteSnapshot 和 RouterStateSnapshot

我是 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;
      }
    });
  }
Run Code Online (Sandbox Code Playgroud)

那么为什么总是需要同时注入两者呢?

routing angular

4
推荐指数
1
解决办法
3316
查看次数

标签 统计

angular ×1

routing ×1