我正在使用Angular 9,作为应用程序的一部分,将打开一个对话框以从Form中获取字符串。在app.module中,我同时拥有FormsModule
和ReactiveFormsModule
。它们在整个应用程序中都运行良好。但是,如果我尝试在MatDialog
组件中使用它们,则会收到以下错误:
错误NG8001:“ mat-form-field”不是已知元素:
错误NG8002:由于它不是'input'的已知属性,因此无法绑定到'formControl'。
该表单的html是:
<h1 mat-dialog-title>Add Special</h1>
<div mat-dialog-content>
<mat-form-field>
<div mat-label>Special</div>
<input required matInput type ="text" placeholder="" [formControl]="specialText">
</mat-form-field>
如上所述,以上代码可在不是Dialog组件的任何其他组件中使用,但是即使在Dialog组件中时,它甚至也不会编译。所有进口文件似乎都根据任何文件存在。
答案 0 :(得分:1)
此问题现已修复。
该问题与进口无关。当项目从Angular 8移到Angular 9时,EntryComponents被删除。 app.module中的声明中不再列出充当MatDialog的模块。将其重新添加后,问题便得以解决。
答案 1 :(得分:0)
将此添加到您的导入
import {MatDialog} from '@angular/material/dialog';
对于Angular 9及更高版本
在任何地方导入MatDialog