gpt4 book ai didi

angular - Angular 2 可以通过路由器传递复杂的对象吗?

转载 作者:太空狗 更新时间:2023-10-29 17:19:31 25 4
gpt4 key购买 nike

是否可以通过路由器发送一个复杂的对象?这是我正在做和正在尝试做的事情:

在搜索页面中,用户可以单击其中一个结果上的按钮,该按钮会调用导致此行触发的方法。 this.router.navigate(['profile-detail', selection]);

selection 对象在导航之前看起来像这样。

{
profile: {
id: number,
fname: string,
lname: string
},
contact: {
type: string,
address: string
},
books: [{
title: string,
author: string
}]
}

但是,当我们到达配置文件详细信息页面时,this.route.snapshot.params 将此作为实际数据:

{
profile: "[object Object]",
contact: "[object Object]",
books: "[object Object]"
}

最佳答案

不能,路由器需要把数据序列化到浏览器的地址栏,地址栏只支持字符串。

您可以使用共享服务在非父/子或同级组件之间传递对象,或者像路由器那样动态添加对象。

另见 https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

根据您的具体要求,解析器也可能起作用 https://angular.io/docs/ts/latest/guide/router.html#!#resolve-guard

关于angular - Angular 2 可以通过路由器传递复杂的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41651925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com