如何在路由时将json对象从一个组件传递到另一个组件。
我想这可以通过服务来实现,但我想知道是否可以使用路由本身来完成。
定义路由时可用的下面的数据属性可能会有所帮助,但我需要从组件代码传递数据,我的意思不是静态数据
{
path: 'heroes',
component: HeroListComponent,
data: { title: 'Heroes List' }
}
谢谢
答案 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();
希望这是一个可行的解决方案! :)