【问题标题】:Dynamic build a table from json data in angular2从angular2中的json数据动态构建表
【发布时间】:2019-07-12 17:20:05
【问题描述】:

我无法围绕我需要制作的循环系统来从 json 数据构建表格。这就是我到目前为止所得到的(尝试了其他一些东西,但我认为这是最好的方式)。

循环通过标题工作正常,只是我无法工作的单元格。

这是我的虚拟数据:

    tableMockData = [
   {
     "header": "TH 1",
      "rows": [
          "TH1 - row1",
          "TH1 -row2",  
          "TH1 - row3", 
          "TH1 - row4" 
      ]
   },
   {
    "header": "TH 2",
     "rows": [
         "TH2 -row1",
         "TH2 - row2",   
         "TH2 - row3", 
         "TH2 - row4",
     ]
  },
  {
    "header": "TH 3",
     "rows": [
      "TH3 -row1",
      "TH3 - row2",  
      "TH3 - row3", 
      "TH3 - row4",
     ]
  },
  {
    "header": "TH 4",
     "rows": [
      "TH4 - row1",
      "TH4 - row2",  
      "TH4 - row3", 
      "TH4 - row4",
     ]
  }
]

这是我的基本循环作为起点:

 <tr *ngFor="let row of tableMockData; let i = index">
      <td>{{row.rows[i]}}</td>
  </tr>

这是我的结果:

这是我想要的结果:

有人能指出我正确的方向吗,我知道哪个单元需要去哪里,但我根本不知道如何循环它。

谢谢:)

更新: 这是一个stackblitz示例: https://stackblitz.com/edit/angular-cdoqwb

【问题讨论】:

    标签: json angular loops html-table


    【解决方案1】:

    使用以下代码更新您的 Html

    <table>
     <tr>
        <th  *ngFor="let row of tableMockData; let i = index">{{row.header}} 
       </th>
    </tr>
    <tr  *ngFor="let row of tableMockData; let i = index">
     <td *ngFor="let row1 of row.rows">
       {{row1}}
     </td>
    </tr>
    </table>
    

    您没有正确绑定 JSON。

    【讨论】:

    • 看来确实有了这个解决方案,我有多个标题标签,所以我认为它回到了绘图板上。你知道如何在保持正确的表结构的情况下循环遍历它吗?
    • 使用您的解决方案的表格中的输出看起来不错。但是html结构没有;而不是一个带有多个 的 标签,如果有意义的话,它会在一个表格主体中制作多个 标签(所以一个表格中有 4 个迷你表格)
    • 是的,这是有道理的。做一件事,让你的标头与 JSON 分开
    • 你的意思是用行将标题与对象分开吗?
    • @sirJ 编辑了我的答案,这为您提供了正确的表格结构
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签