首页 > 解决方案 > 对话框在角度材料中不起作用

问题描述

我正在尝试使用dialog角材料。我正在尝试实现页面上给出的第一个示例: Angular Material Dialog URL 这是上页给出的示例的 Stackblitz URL: Angular 材料网站上提到的示例

我所做的唯一修改是将对话框组件移动到一个单独的文件夹中。但是对话框没有正确打开,也没有显示数据。这是我工作的 Stackblitz 链接: 我的实现

我认为以某种方式没有在对话框组件中传递数据。但我无法弄清楚为什么。任何帮助将不胜感激。

标签: angularangular-material

解决方案


在您的 Stackblitz 中,单击按钮后控制台会显示一条有用的错误消息:

ERROR
Error: No component factory found for DialogComponentComponent. Did you add it 
to @NgModule.entryComponents?

要解决此问题,您需要将对话框中显示的组件添加到 app.module.ts(或 Stackblitz 中的 main.ts 文件)中的 entryComponents 集合中:

entryComponents: [DialogOverviewExample, DialogComponentComponent],

这是必需的,因为对话框中显示的组件没有通过组件的选择器在模板中引用。由于 Material 的对话框组件按类型引用了显示的组件,Angular 需要知道这个组件仍然需要加载,而不是在编译期间摇树。如果您有兴趣,Angular 文档会详细介绍 entryComponents


推荐阅读