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

Angular模态框仅显示标题无法渲染服务数据,求排查

Angular mat-dialog中服务列表无法展示的排查方案
  • 检查数据是否传入模态框
    模态框是独立组件,原页面的currentPlan不会自动共享给模态框:

    1. 打开模态框时要手动传递数据:
      // 原页面中打开模态框的代码
      this.dialog.open(你的模态框组件类, {
        data: { currentPlan: this.currentPlan }
      });
      
    2. 在模态框组件内接收数据:
      import { MAT_DIALOG_DATA } from '@angular/material/dialog';
      
      constructor(@Inject(MAT_DIALOG_DATA) public data: { currentPlan: any }) {}
      
    3. 修改模板中的数据绑定:
      <div *ngIf="data.currentPlan">
        <ul>
          <li jhiSupplierOptionList
              *ngFor="let service of data.currentPlan.funeralServices"
              [service]="service"
              [listener]="optionsListener">
          </li>
        </ul>
      </div>
      
  • 确认自定义组件是否在模态框模块中注册
    jhiSupplierOptionList这个组件必须在模态框所属的模块中声明或导入:

    • 找到模态框对应的模块文件(如xxx-modal.module.ts),检查declarations数组里是否包含JhiSupplierOptionListComponent;
    • 如果该组件是通过共享模块引入的,要确保模态框模块已经导入了对应的共享模块。
  • 检查optionsListener是否存在
    原页面的optionsListener是页面组件的属性/方法,模态框组件内没有这个变量会触发错误,导致列表无法渲染。可以先暂时删除[listener]="optionsListener"这行代码,测试数据能否正常显示,之后再根据需求在模态框组件内定义对应的optionsListener。

  • 查看浏览器控制台的错误提示
    按F12打开开发者工具,切换到Console标签,查看红色的错误信息——比如变量未定义、组件未注册等,这些信息能直接定位问题根源。

内容的提问来源于stack exchange,提问作者Guilherme Gui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:53:24