如何在 HTML 的 typescript 中迭代 JSON 数组?

Posted

技术标签:

【中文标题】如何在 HTML 的 typescript 中迭代 JSON 数组?【英文标题】:How to iterate a JSON array in typescript in HTML? 【发布时间】:2018-10-02 23:29:19 【问题描述】:

我有一个sn-ps的JSON数组如下图:

[
        "auction_number": "015",
        "email": "pete@abc.com",
        "first_name": "Peter",
        "last_name": "Dan",
        "table": 0,
        "id": "015"
    ,
    
        "auction_number": "024",
        "email": "dan@gog.com",
        "first_name": "Dan",
        "last_name": "Fain",
        "table": 0,
        "id": "024"
    
]

打字稿代码:上面的 JSON 数组typescript (ts) 如下所示。这里attendees是一个数组对象。

attendees: Attendee[];
 constructor(public authService: AuthService) 
    const str = localStorage.getItem("attendees");
    if(str) 
      this.attendees = JSON.parse(str);
      console.log(str);
    
  

HTML 代码: 我用来从 JSON 数组(在打字稿代码中) 中迭代所有内容的 HTML 代码 如下所示。由于某些原因,它无法在 html 中迭代 attendees

<tr *ngFor="let row of attendees">
   <td class="left"> attendees.first_name   attendees.last_name </td>
   <td class="number1">250</td>
   <td class="table1">attendees.table</td>
   <td class="right-bill">Bill</td>
</tr>

问题陈述:

我想知道我应该对上面的 HTML 代码 进行哪些更改,以便能够成功地迭代 attendees 数组。我尝试使用 ngfor 指令 但不知何故它不起作用。

【问题讨论】:

【参考方案1】:

您再次访问父循环,您应该只访问行的元素

<tr *ngFor="let row of attendees">
   <td class="left"> row .first_name   row .last_name </td>
   <td class="number1">250</td>
   <td class="table1">attendees.table</td>
   <td class="right-bill">Bill</td>
</tr>

【讨论】:

【参考方案2】:

您应该将每行中的字段引用为row.first_name,因为您将每个与会者设置为let row of attendees。你定义的变量是row

【讨论】:

我试过这个&lt;tr *ngFor="let row of attendee"&gt; &lt;td class="left"&gt;row.first_name&lt;/td&gt; &lt;td class="number1"&gt;250&lt;/td&gt; &lt;td class="table1"&gt;row.table&lt;/td&gt; &lt;td class="right-bill"&gt;Bill&lt;/td&gt; &lt;/tr&gt;,但我没有看到任何变化。 应该是let row of attendees。我修改了那个。抱歉上面的错字。

以上是关于如何在 HTML 的 typescript 中迭代 JSON 数组?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Typescript 中迭代 const 枚举?

如何迭代 TypeScript 中的已知属性键?

在 TypeScript 中迭代对象的键和值

使用 Vue JS Typescript 迭代一个对象 -> 数组 -> 对象

如何使 Object.entries 在 TypeScript 中可用? [复制]

如何在打字稿中迭代字符串文字类型