我想从JSON构建一个表
this.adjacencyData = [{
'x1': [{'x1': '0', 'x2': '1'}],
'x2': [{'x1': '1', 'x2': '0'}]
}];
表格我做了:
for (let prop in this.adjacencyData) {
this.adjacencyDataKeys = Object.keys(this.adjacencyData[prop]);
}
并在模板中:
<thead>
<tr>
<th *ngFor="let key of adjacencyDataKeys">{{ key }}</th>
</tr>
</thead>
这很好..
但我如何创建TableBody?我正在尝试在网上找到的所有内容..但我仍然不知道:/
我试着这样做:
for ( let _i = 0; _i < this.adjacencyDataKeys.length; _i++ ) {
this.adjacencyDataVals = Object.values(this.adjacencyData[0][this.adjacencyDataKeys[_i]][0]);
}
并在模板中:
<tbody>
<tr *ngFor="let val of adjacencyDataVals"><td>{{val}}</td></tr>
</tbody>
我得到了输出:
<tbody _ngcontent-c8="">
<tr _ngcontent-c8="" class="ng-star-inserted">
<td _ngcontent-c8="">1</td>
</tr>
<tr _ngcontent-c8="" class="ng-star-inserted">
<td _ngcontent-c8="">0</td>
</tr>
</tbody>
有人可以向我解释如何解决这个问题吗?
答案 0 :(得分:2)
在此迭代器中使用另一个迭代器
`<tbody>
<tr *ngFor="let vals of adjacencyDataVals">
<td *ngFor="let val of vals">{{ val }}</td>
</tr>
</tbody>
`
答案 1 :(得分:0)
对于任何遇到同样问题的人来说,最终解决方案就是这个问题:
1)定义一个数组
adjacencyDataVals = [];
2)仅将值推送到此数组
for ( let _i = 0; _i < this.adjacencyDataKeys.length; _i++ ) {
this.adjacencyDataVals.push(Object.values(this.adjacencyData[0][this.adjacencyDataKeys[_i]][0]));
}
3)然后像Karthikeyan M V
写道:
<tbody>
<tr *ngFor="let vals of adjacencyDataVals">
<td *ngFor="let val of vals">{{ val }}</td>
</tr>
</tbody>
非常感谢Karthikeyan M V
;)