eca*_*ain 8 angular2-routing angular
我试图使用此代码传递一个字符串:
this.router.navigate(['/systems', params.toString()]);
Run Code Online (Sandbox Code Playgroud)
然后将route参数附加到API调用的URL.该params.toString()是change_user=2258.但是,当它通过浏览器发送时,它将更改为change_user%3D2558URL.当我使用开发人员工具查看发送给API的内容时,它已更改为NaN.
如何通过路由器传递字符串,以便我可以直接将其附加到我的API字符串?
编辑:变量params是类型URLSearchParams().这就是我试图提取参数的方式:
this.route.paramMap.switchMap((params: ParamMap) =>
this.httpService.getSites(+params.get('params')))
.subscribe(sites => this.sites = sites);
Run Code Online (Sandbox Code Playgroud)
eca*_*ain 11
所以这就是我修复它的方法:
我不得不这样根本就被取出+的+params.get()调用.显然,它的作用是尝试将其转换为数字.现在我可以params.toString()直接传递给我了.
添加带有参数的路由定义,如Angular 2 路由文档中所述
{ path: 'hero/:id', component: HeroDetailComponent }
Run Code Online (Sandbox Code Playgroud)
然后您将能够导航到该路线
let id = 2258;
this.router.navigate(['/hero', id]);
Run Code Online (Sandbox Code Playgroud)
并使用ActivatedRoutein@angular/router来提取参数,如文档中所述
let id = this.route.snapshot.paramMap.get('id');
Run Code Online (Sandbox Code Playgroud)
使用router.navigateByUrl()方法(此处的文档)
router.navigateByUrl('/hero/2258');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10332 次 |
| 最近记录: |