agnular2中是否有api允许传递json对象而不是字符串值。例如。在Router.navigate()
我可以传递路由参数
Router.navigate('routename',[{key:stringvalue}])
并可以使用RouteParams.get(key) : string
检索它。
但这只返回字符串值。我需要传递json对象。
感谢任何指针
答案 0 :(得分:7)
另一个有效的解决方案是使用RouterParams的params
属性。
这可能不是首选方式,但它有效(从Beta8开始)。
如果您使用Router.navigate(['/myRoute',{someProperty:"SomeValue"}]
导航
你可以通过以下方式访问参数:
constructor(routeParams: RouteParams){
let myPassedData: any = routeParams.params;
console.log(myPassedData.someProperty); #Prints "SomeValue"
}
答案 1 :(得分:3)
我认为它不是开箱即用的东西,因为路由依赖于URL,路径变量和查询参数都是字符串。 RouterParams
和RouterData
都只支持字符串属性。
为了模拟这一点,我没有看到其他解决方案,而是使用JSON.stringify
编码JSON对象并在另一侧解析它们。
这是一个描述这个问题的傻瓜:https://plnkr.co/edit/jbl7v5fHQEmf4F8tpXDO?p=preview。
希望它可以帮到你, 亨利
答案 2 :(得分:0)
对于 Angualr 7,8+:
发送结束:
this.router.navigate(['/targeturl/' , JSON.stringify(inputParameter)]);
接收端:
import { ActivatedRoute, Router} ....
sub;
ngOnInit() {
this.sub = this.activatedroute.paramMap.subscribe(params => {
console.log(params);
debugger;
}); }