我使用KO JS,在显示根键的键时遇到了问题。我问了一个关于它的问题,确实有了一些进展,但问题仍然没有解决。LINK TO PREVIOUS QUESTION
我认为我的数据需要Map。我从后端获得的数据如下所示:
以下是示例数据的文本版本
"Pricings": {
"2021-22": {
"Tbilisi": {
"PriceHeaders": [
],
"Comment": "TBi",
"Pricings": [
{
}
]
},
"2020-21": {
"Tbilisi": {
"PriceHeaders": [
],
"Comment": "TBi",
"Pricings": [
{
}
]
}
}
}
我在考虑重新创建如下数据:发件人:
2020-21 :
{
Tbilisi: {PriceHeaders: Array(9), Comment: 'TBi', Pricings: Array(1)}
}
收件人:
Year : 2020-21
Cities : {
Tbilisi: {PriceHeaders: Array(9), Comment: 'TBi', Pricings: Array(1)}
}
然后,我可以运行一个简单的foreach,并从Cities中获取Year和Any键的值。
我想出了这样的点子
Object.entries(data).map(([year, cities]) =>
(
{
"year": year,
"cities": Object.entries(cities).map(([name, cities]) =>
(
{
name,
...cities
}
))
}
))
问题是,我不能在数据绑定中使用此代码
<div data-bind="data : THIS FUNCTION HERE , as 'result'"></div>
1条答案
按热度按时间vcirk6k61#
此问题已通过this answer解决
密钥代码为:
这将为您的数据做的是 Package 您已经在 Package 器对象中的数据,因此与您的示例数据一起,它将组成...
...从原始结构
这意味着,当迭代kojs模板中的pureComputed函数时,可以使用
[binding]: key
访问year,使用[binding: value
访问嵌套数据您可能还希望在knockout中查看对象值的'mapping' plugin,以使其在数据更改时更新(除非它始终是静态的)