我正在尝试使用以下代码传递字符串:
this.router.navigate(['/systems', params.toString()]);
然后将route参数附加到API调用的URL。
params.toString()
为change_user=2258
。但是,当它通过浏览器发送时,它会更改为URL上的change_user%3D2558
。当我使用开发人员工具查看发送给API的内容时,它已更改为NaN
如何通过路由器传递字符串,以便我可以直接将其附加到我的API字符串?
修改:变量params
的类型为URLSearchParams()
。
这就是我试图提取参数的方法:
this.route.paramMap.switchMap((params: ParamMap) =>
this.httpService.getSites(+params.get('params')))
.subscribe(sites => this.sites = sites);
答案 0 :(得分:10)
所以这就是我修复它的方法:
我只需要做的就是在+
电话中取出+params.get()
。显然,它的作用是尝试将其转换为数字。现在我可以直接传递params.toString()
。
答案 1 :(得分:3)
使用描述here in the Angular 2 routing documentation
的参数添加路径定义{ path: 'hero/:id', component: HeroDetailComponent }
然后,您将能够使用
导航到路线let id = 2258;
this.router.navigate(['/hero', id]);
使用ActivatedRoute
中的@angular/router
提取参数here in the documentation
let id = this.route.snapshot.paramMap.get('id');
使用router.navigateByUrl()
方法(documentation here)
router.navigateByUrl('/hero/2258');