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>