我知道canActivate在解析器之前調用。我有一個基於令牌(從url動態)的場景,我需要路由到三個不同的頁面。這是一個更好的方法。試圖瞭解canActivate和Resolver之間的區別
我應該使用canActivate並根據令牌和路由從服務中獲取數據。或者我應該使用Resolver服務來獲取基於令牌和路由到組件的數據?
我知道canActivate在解析器之前調用。我有一個基於令牌(從url動態)的場景,我需要路由到三個不同的頁面。這是一個更好的方法。試圖瞭解canActivate和Resolver之間的區別
我應該使用canActivate並根據令牌和路由從服務中獲取數據。或者我應該使用Resolver服務來獲取基於令牌和路由到組件的數據?
解析器確實用於檢索數據。它會自動將數據添加到數據[],然後可以從路由組件訪問來獲取數據:
ngOnInit(): void {
this.movie = this.route.snapshot.data['movie'];
}
canActivate
沒有做到這一點,其目的是激活路徑之前更多的邏輯執行.. 。如檢查用戶是否登錄。
CanActivate是執行檢查,如果路由器應該導航到該路由路由器後衛和解析器是數據提供者,即取的數據組件在路由器啓動導航之前。所以,因爲您正在嘗試獲取數據,所以應該使用Resolver而不是Guard。
謝謝您的回覆。我沒有足夠的聲譽來選擇答案。 –
有時會有一段時間纔會允許選擇答案。但它應該允許你選擇一個你自己的問題的答案。 – DeborahK