【发布时间】:2021-11-05 21:11:46
【问题描述】:
我想要做的是获取对象的数据数组并创建一个函数,我可以在其中传递数据并动态呈现列标题和行。这是我的示例数据:
let revisions = [
{
car: {
id: 1000,
header: "Toyota"
},
revisionDate: {
header: "Revision Date",
newValue: "08/24/2021",
oldValue: "09/15/2020"
},
revisionType: {
header: "Revision Type",
newValue: "Tool Desc.",
oldValue: "Tool Number"
},
revisionNote: {
header: "Revision Note",
newValue: "Delete",
oldValue: "Delete"
},
workStation: {
header: "Garage",
newValue: "New garage",
oldValue: "Old garage"
}
}
对于我的函数,我尝试使用 2 个 for 循环,但是我似乎无法弄清楚如何获取数组中的属性。我试过的:
getHeaders(revisions) {
var prop;
var rowProp;
for (rowProp = 0; rowProp < revisions.length; rowProp++)
if (rowProp >= 0) {
gridData.push({ header: revisions.header });
}
for (prop = 0; prop < revisions.length; prop++) {
if (prop === "oldValue") {
gridData.push({ field: "revisionDate", header: revisions.header + " (Existing)" });
}
if (prop === "newValue") {
gridData.push({ field: "revisionDateNew", header: revisions.header + " (New)" });
}
else {
gridData.push(revisions);
}
}
return gridData;
}
这是html以防万一:
<tr>
<th *ngFor="let col of columns">
{{col.header}}
</th>
</tr>
感谢您的帮助。
【问题讨论】:
-
看起来你的数组包含一个项目,一个对象,它包含几个对象。因此 revisions.length 为 1 并且不包含您所期望的任何对象。使用。
-
对不起,我不够具体,数组是我的模拟 api 数据,实际上有 10 个项目,但最终会被替换为一个 api。
标签: javascript angular typescript foreach dynamic-arrays