首先DOIT這樣的:如果你想用戶重定向到從他/她是從哪裏來的網址,你可以做這樣的
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
console.log(state.url);
}
:它會給你一個網址的信息,請閱讀official tutorial docs下TEACH AUTHGUARD TO AUTHENTICATE部分。
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
let url: string = state.url;
return this.checkLogin(url);
}
checkLogin(url: string): boolean {
if (this.authService.isLoggedIn) { return true; }
// Store the attempted URL for redirecting
this.authService.redirectUrl = url;
// Navigate to the login page with extras
this.router.navigate(['/login']);
return false;
}
感謝您的回覆,但我不想重定向到登錄或某個頁面。我想在用戶從page1導航到這個頁面2時清除緩存,並且我希望在從其他頁面導航到此頁面時保留緩存。 – Kashyap
當canActivate被執行時,頁面url仍然是前一頁。所以我可以通過window.location.href獲取網址。但想看看有沒有這樣做的角度方式。 – Kashyap
state.url會給透明url.u想要當前url用戶ActivatedrouteSnapshot「snapshot」屬性。 –