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
相关产品推荐
相关产品推荐

