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 ;)