angular - 在 Angular2 中重定向到 @CanActivate 中的另一个组件

标签 angular angular2-routing

有什么方法可以让我们从 Angular2 中的 @CanActivate 重定向到不同的组件?

最佳答案

截至今天,使用最新的@angular/router 3.0.0-rc.1,这里有一些关于如何通过路由上的 CanActivate 守卫来做到这一点的引用:

  1. angular 2 reference
  2. 这个 SO 问题的两个答案,作者 Nilz11Jason

逻辑的主要要点如下:

// ...
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;
  }
}

关于angular - 在 Angular2 中重定向到 @CanActivate 中的另一个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34711889/

相关文章:

javascript - 如何在 ag-grid 的事件方法中使用 javascript 默认事件对象

Angular2 RC5 跨模块提供程序/扫描

angular - canActivate 在订阅更改时不响应 Angular 2 路由器 AngularFire2

typescript - 使用 Angular2 处理 404

angular-cli 本地低版本

javascript - 使用 javascript 以动态方式热图同一轴的多个数据标签

javascript - 将鼠标悬停在列表上时传单打开弹出窗口

angular - Angular2 中的路由和面包屑

hyperlink - 如何在 Angular 2 中创建指向外部 URL 的链接

javascript - 如何在 Angular 2 中创建一个可选的根状态?