簡體   English   中英

angular-在導航到另一條路線之前將queryParams傳遞到活動路線

[英]angular - passing queryParams to active route before navigating to another route

我有一個清晰的數據網格,其中單擊一行將通過從/ organization / overview路由到/ organization /:id來打開該項目;

由於UX的原因,我想在導航之前將最后單擊的ID存儲為queryParam。

例如

  1. 用戶點擊ID = 1234的項目
  2. 路線地理位置已更新為/ organization / overview?id = 1234
  3. 導航到/ organization / 1234

這個想法是,當用戶單擊瀏覽器后退按鈕時,最后單擊的項目將突出顯示。 我確實知道可以很容易地實現此行為,但是這種方法是我感興趣的。下面是我到目前為止擁有的openOrganization方法。

openOrganization(organization){
    this.router.navigate([], {
        queryParams: { oid: organization.id },
        relativeTo: this.activatedRoute
    });
    this.router.navigate(['/admin/organizations', organization.id]);
}

它不起作用,因為第二個導航調用似乎在完成之前中斷或取消了第一個導航。

謝謝!

您應該訂閱您的路由器,並在導航結束時快照當前路線。
例如:

lastUrl: string;
constructor(private _router: Router) {
  _router.events.filter(event => event instanceof NavigationEnd).subscribe(e => {
    this.lastUrl = e.url;
  });
}

然后,lastUrl變量保存您來自的路由。
-編輯
與params相同,如果每個url上都有特定的params,則可以獲取傳遞的所有params,而不是獲取最后一條路徑的url。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM