有没有办法用 routerLink/router.navigate 附加 query/route 参数?

Is there a way to append query/route parameters with routerLink/router.navigate?

我正在显示带有搜索和分页的项目列表,我想在其他参数更改时保留现有查询参数。

所以我可以有类似 /items?page=3&size=10&title=Hey 的内容,而 router.navigate('RouteName', { title: 'Hello' }) 只会更改标题,保留页面和大小。

Angular2 目前可以吗?或者,如果没有,我能否以某种方式扩展具有此功能的路由器,也许公开另一种保留参数的方法,比如说 'navigateSafely'?然后 routerLink 用于模板?

我已经查看了路由器的源代码,但是...我无法弄清它的正反面;指令 class 本身似乎过于复杂。

任何人都可以阐明这一点吗?

路由器目前没有任何内置的方法或设置来在导航时保留现有的路由参数。

据我所知,路由器也不容易扩展;它的用法比常规服务更复杂。

如果有任何变化,我会更新这个答案。

下面是使用 Underscore 和 RouteParams 的最佳方法:

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