You need to enable JavaScript to run this app. Angular使用NgFor遍历数组仅显示首值,如何提取postdata的title和body?
优惠活动
大模型
产品
解决方案
定价
更多

Angular使用NgFor遍历数组仅显示首值,如何提取postdata的title和body?

问题根因
  • 组件侧把接口返回的完整响应对象手动包裹成了长度为1的数组赋值给posts,导致*ngFor最多只能遍历1次
  • 模板中使用遍历索引i取值p.postdata[i],仅索引为0时可以拿到有效值,因此只能得到第一个结果
修复方案

方案1(推荐,逻辑更清晰)

调整组件逻辑

直接提取接口返回值中的postdata数组赋值给posts,不需要额外套一层数组:

posts;

constructor(private getpostservice:GetpostsService) { }

ngOnInit(): void {
  this.getpostservice.getposts().then(data=>{
    this.posts = data.postdata;
    console.log("Inside home",this.posts);
  })
}

调整模板逻辑

直接遍历posts数组取对应字段即可,不需要额外使用索引:

<tr *ngFor="let p of posts">
  <td>{{p.title}}</td>
  <td>{{p.body}}</td>
</tr>

方案2(不改动组件逻辑,仅改模板)

如果不需要拆分响应数据,直接在模板中遍历第一层对象下的postdata数组即可:

<tr *ngFor="let p of posts[0].postdata">
  <td>{{p.title}}</td>
  <td>{{p.body}}</td>
</tr>

内容的提问来源于stack exchange,提问作者Subhodeep bhowmick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 04:39:00