2016-05-15 32 views
0

我正在顯示包含搜索和分頁的項目列表,並且我希望在其他參數更改時保留現有的查詢參數。有沒有辦法使用routerLink/router.navigate附加查詢/路由參數?

所以我可以有類似/items?page=3&size=10&title=Heyrouter.navigate('RouteName', { title: 'Hello' })只會改變標題,保持頁面和大小。

目前在Angular2中可能嗎?或者,如果沒有,我能以某種方式擴展具有此功能的路由器,可能會公開另一種方法,讓我們說'navigateSafely',它可以保持參數?然後routerLink用於模板?

我已經查看了路由器的源代碼,但是......我無法制作它的正面或反面;教學課本身似乎過於複雜。

任何人都可以對此有所瞭解嗎?

+0

什麼Angular2版本您使用的?自RC.0以來有一個新的路由器。你需要明確地傳遞所有參數。如果你想保持一些不變,那麼獲得它們並且不改變它們。 –

+0

我儘量保持最新的測試版。 – Kesarion

+0

這裏也一樣,但如果你想要具體的代碼,實際的版本很重要。我想你需要提供更多細節。它與routerLink不同(在根組件或「任何」組件或當前路由添加的組件中,...) –

回答

1

路由器在此時導航時沒有任何內置方法或設置來保留現有路由參數。

路由器也不能輕易擴展,據我所知;它的使用比常規服務更復雜。

如果有什麼變化,我會更新這個答案。

下面是做到這一點的最好辦法用下劃線和RouteParams:

this._router.navigate([route, _.assign(this._params.params, { page: page })]); 
相關問題