【发布时间】:2021-12-01 20:27:25
【问题描述】:
我正在尝试从 colors.standard 中获取 color_name。
我尝试了下面给出的 html,但两者都显示相同的数组。
HTML - 不工作
<div data-bind="foreach: { data: doorColorList, as: 'column' }">
<span class="style-name" data-bind="text: name"></span>
<div data-bind="foreach: { data: column.colors.standard, as: 'section' }">
<p data-bind="text:console.log(section)"></p>
</div>
</div>
HTML不工作
<div data-bind="foreach: { data: doorColorList, as: 'column' }">
<span class="style-name" data-bind="text: name"></span>
<div data-bind="foreach: { data: column.colors.standard, as: 'section' }">
<div data-bind="foreach: { data: section, as: 'colorsection' }">
<p data-bind="text:console.log(colorsection)"></p>
</div>
</div>
</div>
控制台 JS 数组:
{
"style_id": "3",
"name": "Rockford",
"colors": {
"standard": {
"27": {
"style_id": "3",
"color_id": "27",
"color_name": "White",
"color_group": "1",
"sort_order": "2",
"defaultStyleId": "4"
},
"28": {
"style_id": "3",
"color_id": "28",
"color_name": "Cloud White",
"color_group": "1",
"sort_order": "1",
"defaultStyleId": "4"
}
},
"doorcolor": {
"18": {
"style_id": "3",
"cabinet_line_id": "1",
"door_id": "1",
"meta_keywords": null,
"meta_description": null,
"price_id": "3",
"color_id": "18",
"color_name": "Carbon",
"color_group": "2",
"sort_order": "8"
}
},
}
}
}
如何从 colors.standard 获取 color_name?
现在它正在显示数组,如果我再添加一个 foreach 循环,它仍然会给出数组。
【问题讨论】:
-
colors.standard是一个对象,而不是一个数组。 Knockout 的foreach不知道如何迭代对象。您可以使用data: Object.values(column.colors.standard)循环遍历对象的值(这可能是您想要的)。 -
谢谢,它正在工作......