You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中ngFor循环传递整个数组而非单个元素的问题

解决Angular嵌套组件ngFor传递数据错误的问题

嘿,我一眼就发现问题所在啦!你在使用*ngFor循环的时候,犯了一个很容易疏忽的小错误:

错误根源

你在父组件的模板里写了:

<app-sever-element *ngFor="let server_element of serverElements" [element]="serverElements"></app-sever-element>

这里的*ngFor已经把数组里的每一项赋值给了server_element,但你绑定[element]的时候,却把**整个数组serverElements**传了进去,而不是当前迭代的单个元素server_element。这就导致子组件里拿到的是数组,而不是你期望的单个对象,自然访问element.name和element.content时会找不到对应属性,渲染出空元素,用{{element | json}}看到的也是整个数组。

修正后的代码

只需要把绑定的变量改成当前迭代项server_element就好:

<app-sever-element *ngFor="let server_element of serverElements" [element]="server_element"></app-sever-element>

验证一下

修正后,子组件的模板:

<div class="panel panel-default">
  <div class="panel-heading">{{ element.name }}</div>
  <p>{{ element.content }}</p>
</div>

配合AppComponent里的数组:

serverElements = [ 
  { type: 'server', name: 'Test', content: 'This is only a test' } 
];

就能正常渲染出带有名称和内容的面板了。如果数组里有多个对象,每个迭代也会正确传递对应的单个元素,不会再出现整个数组的情况。

内容的提问来源于stack exchange,提问作者Nicolas M. Pardo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:38:53