網站搜尋

angular - 當 queryParams 綁定到定義為 getter 的屬性時,routerLinkActive 無法工作


在我的組件控制器中,我有一個屬性 -

 public get navigationParams() {
    return {
      fromDate: sessionStorage.getItem('fromDate'),
      toDate: sessionStorage.getItem('toDate')
    };
  }

注意:我需要把它放在 session storage 中,以便我可以從其他頁面重定向,而那些頁面中它不是 URL 狀態的一部分。

<div class="card" routerLinkActive="active"
             [routerLink]="['/dashboard/revenue']"
             [queryParams]="navigationParams">
 Revenue
</div>

它應該套用第一次套用的 active 類別,但是當日期通過日期選擇器 (ng2-bootstrap) 改變時,它會更新 fromDate 和 toDate 到 sessionStorage,重新載入嵌套的狀態 - this.router.navigate([], {relativeTo: this.activatedRoute, queryParams: this.navigationParams),現在樣式消失了。

不過,如果我使用像 public queryParams: any; 這樣的屬性,而不是 navigationParams,它就能運作。

<div class="card" routerLinkActive="active"
             [routerLink]="['/dashboard/revenue']"
             [queryParams]="queryParams">
 Revenue
</div>