有没有办法用routerLink / router.navigate追加查询/路由参数?

时间:2016-05-15 19:11:47

标签: javascript angular angular2-routing

我正在显示带有搜索和分页的项目列表,并且我希望在其他参数发生变化时保留现有的查询参数。

所以我可以使用/items?page=3&size=10&title=Heyrouter.navigate('RouteName', { title: 'Hello' })这样的内容,只会更改标题,保持页面和大小。

Angular2目前有可能吗?或者,如果没有,我可以以某种方式扩展具有此功能的路由器,可能会暴露另一种方法,让我们说“navigateSafely'”,保留参数?然后routerLink用于模板?

我查看了路由器的源代码,但是......我无法做出正面或反面的事情;指令类本身似乎过于复杂。

任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

这是使用Underscore和RouteParams执行此操作的最佳方式:

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