1. 程式人生 > >路由守衛

路由守衛

resolv ide nac 不同 mod gpo str 正常 com

路由守衛

CanActivate | 處理導航到某路由的情況—阻止或允許用戶進入組件

CanDeactivate | 處理從當前路由離開的情況—用戶離開時

Resolve | 在路由激活之前獲取路由數據—在組件綁定的屬性還沒有被賦值時會報錯,這個守衛就是解決這個問題的

CanActivate

1.需要新建一個 XX.guard.ts 文件

技術分享圖片

2.在這個.ts 文件裏導入 CanActivate 模塊 ...

長這樣:

技術分享圖片

canActivate(){} 這個方法 return true 用戶就能正常加載這個路由組件,返回false 就被攔住了

3.在app.module.ts裏導入這個模塊

技術分享圖片

在providers:[] 註入模塊

技術分享圖片

4.在app-routing.module.ts 導入這個模塊

技術分享圖片

在你需要使用路由守衛的地方這樣寫:

技術分享圖片

CanDeactivate

1.需要新建一個 XX.guard.ts 文件

導入CanDeactivate 模塊和要保護的模塊

技術分享圖片

這個文件是這樣寫的:

箭頭所指的就是需要保護的模塊,canDeactivate 這個函數返回true表示同意離開,返回false表示不同意離開

技術分享圖片

2.在app.module.ts中導入剛剛創建的這個模塊

技術分享圖片

註入到providers

技術分享圖片

3.在app-routing.module.ts 裏導入創建的這個模塊

技術分享圖片

在要保護的模塊的路由的地方這樣配置:

技術分享圖片

Resolve

路由守衛