當用戶沒有登錄我的應用程序時,它等於localStorage中不存在'userToken',那麼我只想將他重定向到登錄路由。無法取消當前導航並從根組件導航到其他地方
假設用戶輸入路由/customers
,那麼當本地存儲中不存在userToken時,他應該被重定向到登錄屏幕。
App.component.ts
export class AppComponent
{
constructor(private routerService: RouterService, private router: Router, private authService: AuthenticationService)
{
if (!authService.isLoggedIn())
{
this.router.navigate(['/login']);
}
}
}
路由器導航方法被調用,但它沒有導航到登錄界面,爲什麼不呢?後端的客戶數據試圖獲取,但我在服務器響應中獲得了401。這意味着...根應用程序組件繼續運行之後的代碼。
你應該在導航之前移除令牌叫我想?會有曲線重定向可能是 –
而你在根組件中執行它不正確,它將只執行一次,因爲該應用程序被加載使用canActivate這個https://angular.io/docs/ts/latest/api/router /index/CanActivate-interface.html –
好吧,但是當我訂閱路由應用程序組件中的更改時,它應該可以正常工作。我只是嘗試一下! – Pascal