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

Angular中p-dialog内用*ngFor报Can't bind to 'ngforOf'错误求助

问题解决方案

1. 修复*ngFor指令的大小写错误

你代码里把Angular的结构指令写成了*ngfor,但该指令是大小写敏感的,必须写成*ngFor(注意字母F为大写)。这是导致指令无法被识别的直接原因,修正后代码如下:

<div *ngFor="let model of models">
  {{model.name}} Update
</div>

2. 排查其他潜在问题

如果修正大小写后仍未解决,检查以下几点:

  • 确认组件类(my-page.component.ts)中已正确定义并初始化models变量,比如:
    // 根据实际数据类型调整,确保变量有值
    models: { name: string }[] = [];
    
  • 若当前组件不在AppModule中,需确保组件所属模块已导入CommonModule(*ngFor由该模块提供)。你的AppModule已导入CommonModule,只要组件在该模块的declarations数组中即可。
  • 你的AppModule中重复导入了两次DialogModule,虽然不影响功能,但建议保留一次导入即可,PrimeNG的DialogModule是<p-dialog>的依赖模块,你已正确导入。

异步数据场景补充

如果models是通过异步请求获取的数据,需配合async管道确保数据加载完成后再渲染:

<div *ngFor="let model of models | async">
  {{model.name}} Update
</div>

(前提是models为Observable类型)

内容的提问来源于stack exchange,提问作者Celal Sunnetci

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:15:31