我正在显示带有搜索和分页的项目列表,并且我希望在其他参数发生变化时保留现有的查询参数。
所以我可以使用/items?page=3&size=10&title=Hey
和router.navigate('RouteName', { title: 'Hello' })
这样的内容,只会更改标题,保持页面和大小。
Angular2目前有可能吗?或者,如果没有,我可以以某种方式扩展具有此功能的路由器,可能会暴露另一种方法,让我们说“navigateSafely'”,保留参数?然后routerLink
用于模板?
我查看了路由器的源代码,但是......我无法做出正面或反面的事情;指令类本身似乎过于复杂。
任何人都可以对此有所了解吗?
答案 0 :(得分:1)
路由器目前没有任何内置方法或设置来保留现有的路由参数。
据我所知,路由器也不容易扩展;它的用法比常规服务更复杂。
如果有任何变化,我会更新此答案。
这是使用Underscore和RouteParams执行此操作的最佳方式:
this._router.navigate([route, _.assign(this._params.params, { page: page })]);