亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Angular 7 關于相同的 url 導航問題?

Angular 7 關于相同的 url 導航問題?

冉冉說 2021-11-12 17:15:26
問題陳述 :-當我導航到相同的 url 時,ngonInit 或任何其他生命鉤周期都無法在 angular 中工作。 設想 :-我有一個延遲加載的通用模塊,其中的內容根據它出現的鏈接而變化。所以我有多個不同名稱的按鈕指向同一個組件,當我單擊按鈕時,我想要屏幕名稱,以便我可以根據屏幕名稱獲取通用組件上的內容并將其顯示給用戶。我面臨的問題:-如果組件打開并顯示一個 sceario 并且用戶單擊另一個按鈕,該按鈕路由到同一組件,角度生命周期掛鉤不起作用,我不能調用 api 來刷新數據?那么如何實現呢?我嘗試過的解決方案:- 1. onSamenUrlNavigation 屬性設置為 'Reload' 。forRoot() 然后我訂閱了那個通用模塊中的 router.event 并刷新了我使用過的數據,檢查它是否是 urlnavigationend 的實例。會導致問題。添加了以 screenname 為鍵的查詢參數,但生命周期方法不起作用添加了導航附加功能,但存在一些問題那么如何在 angular 中解決這個問題呢?
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

不是一個聰明的方法,但這應該有效:


為同一組件創建單獨的路由


 { path: 'cdconfig/:data' , component: CdpiplelinegraphComponent},

     { path: 'cdconfigflow/:data' , component: CdpiplelinegraphComponent},

導航時改變路徑


if(this.router.url.indexOf('/cdconfig/')>-1){

       this.router.navigate(['cdconfigflow',id.name]);

   }else{

       this.router.navigate(['cdconfig',id.name]);

}


查看完整回答
反對 回復 2021-11-12
?
米脂

TA貢獻1836條經驗 獲得超3個贊

我會使用 NavigationEnd 解決方案,但您可以在 Event 對象內部檢查用戶導航到的 URL 是否是新 API 請求的正確 URL,例如:


router.events.subscribe((event) => {

    if (event instanceof NavigationEnd && event.url.match('path/to/my/component')) {

        this.loadApiData();

    }

}


查看完整回答
反對 回復 2021-11-12
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號