如何通过angular2中的Router.navigate传递RouteData

use*_*623 10 angular2-routing angular

在agnular2中是否有api允许传递json对象而不是字符串值.例如,Router.navigate()我可以传递路由参数

Router.navigate('routename',[{key:stringvalue}])
Run Code Online (Sandbox Code Playgroud)

并可以使用RouteParams.get(key) : string.但这只返回字符串值.我需要传递json对象.

感谢任何指针

Chr*_*ris 7

另一个有效的解决方案是使用paramsRouterParams 的属性.这可能不是首选方式,但它有效(从Beta8开始).

如果你导航,Router.navigate(['/myRoute',{someProperty:"SomeValue"}] 你可以访问参数:

constructor(routeParams: RouteParams){
  let myPassedData: any = routeParams.params;
  console.log(myPassedData.someProperty); #Prints "SomeValue"
}
Run Code Online (Sandbox Code Playgroud)


Thi*_*ier 4

我认为这不可能是开箱即用的,因为路由依赖于 URL,并且路径变量和查询参数都是字符串。且RouterParamsRouterData支持字符串属性。

JSON.stringify为了模拟这一点,除了使用 JSON 对象进行编码并在另一端解析它们之外,我没有看到其他解决方案。

这是一个描述这一点的 plunkr:https://plnkr.co/edit/jbl7v5fHQEmf4F8tpXDO ?p=preview 。

希望它对你有帮助,蒂埃里