Redirect to a different component inside @CanActivate in Angular2

前端 未结 6 588
攒了一身酷
攒了一身酷 2020-12-03 10:03

Is there any way we can redirect to a different component from @CanActivate in Angular2 ?

6条回答
  •  时光说笑
    2020-12-03 10:24

    As of today, with latest @angular/router 3.0.0-rc.1, here are a couple of references on how to do that through CanActivate guards on routes:

    1. angular 2 reference
    2. Two answers to this SO question, by Nilz11 and by Jason

    The main gist of logic looks like:

    // ...
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
      if (this.authService.isLoggedIn) {
        // all ok, proceed navigation to routed component
        return true;
      }
      else {
        // start a new navigation to redirect to login page
        this.router.navigate(['/login']);
        // abort current navigation
        return false;
      }
    }
    

提交回复
热议问题