传递json数据angular2路由

时间:2017-02-04 02:53:14

标签: angular angular2-routing

如何在路由时将json对象从一个组件传递到另一个组件。

我想这可以通过服务来实现,但我想知道是否可以使用路由本身来完成。

定义路由时可用的下面的数据属性可能会有所帮助,但我需要从组件代码传递数据,我的意思不是静态数据

  {
    path: 'heroes',
    component: HeroListComponent,
    data: { title: 'Heroes List' }
  }

谢谢

2 个答案:

答案 0 :(得分:0)

它可以但你必须使用JSON.stringify并将对象转换为路由参数并将它们作为路径的一部分传递。

答案 1 :(得分:0)

正如在其他答案中已经提到的,如果没有对象进行字符串化,则无法通过路由传递对象,这意味着该对象在URL中可见。避免使用服务以及您的对象在网址中可见的一种方法是 localStorage 。在路由之前,您可以在localStorage中设置对象,并在路由从localStorage获取对象后,首先是这样的:

localStorage.setItem('myObject', JSON.stringify(theObject));

然后我会在服务中创建一个函数来获取路由后的项目:

getMyObject() {
  return JSON.parse.getItem('myObject');
}

导航后只需调用该功能:

this.myObject = this.myService.getMyObject();

希望这是一个可行的解决方案! :)