簡體   English   中英

導航到另一條路線后,能否繼續在Angular中繼續活動?

[英]Can CanActivate in Angular continue after navigating to another route?

在身份驗證丟失的身份驗證衛士中,我想顯示Facebook登錄名。 不知道是否會工作做router.navigate(['login'])canActivate觸發認證,並返回登錄的異步結果還是會被打斷router.navigate電話。 在這里想知道適當和簡單的流程。

對的,這是可能的。 您還可以使用navigationByUrl轉到Facebook

import { Injectable } from '@angular/core';
import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { UserService } from './user.service';

@Injectable()
export class AuthGuardService implements CanActivate {

  constructor(private userService: UserService, private router: Router) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
    if (this.userService.isValid()) {
      return true;
    } else {
      this.router.navigate(['/login'], {
        queryParams: {
          return: state.url
        }
      });
      return false;
    }
  }
}

代碼片段來源/更多示例可以在以下位置找到: http : //gnomeontherun.com/2017/03/02/guards-and-login-redirects-in-angular/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM