Angular5 - 使用 *ngFor 构建 Table
Angular5 - build Table with *ngFor
我想从 JSON
构建一个 Table
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>
这很好..
但是我如何创建 Table正文?我正在尝试我在网上找到的所有东西..但我仍然没有任何线索:/
我试过:
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>
有人可以向我解释一下如何解决这个问题吗?
在此迭代器中使用另一个迭代器
`<tbody>
<tr *ngFor="let vals of adjacencyDataVals">
<td *ngFor="let val of vals">{{ val }}</td>
</tr>
</tbody>
`
对于遇到同样问题的任何人..最终的解决方案是这个:
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
;)
我想从 JSON
构建一个 Tablethis.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>
这很好..
但是我如何创建 Table正文?我正在尝试我在网上找到的所有东西..但我仍然没有任何线索:/
我试过:
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>
有人可以向我解释一下如何解决这个问题吗?
在此迭代器中使用另一个迭代器
`<tbody>
<tr *ngFor="let vals of adjacencyDataVals">
<td *ngFor="let val of vals">{{ val }}</td>
</tr>
</tbody>
`
对于遇到同样问题的任何人..最终的解决方案是这个:
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
;)