Angular 9 MatDialog无法使用导入的FormsModule或ReactiveFormsModule

时间:2020-03-02 17:04:36

标签: angular angular-material

我正在使用Angular 9,作为应用程序的一部分,将打开一个对话框以从Form中获取字符串。在app.module中,我同时拥有FormsModuleReactiveFormsModule。它们在整个应用程序中都运行良好。但是,如果我尝试在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组件中时,它甚至也不会编译。所有进口文件似乎都根据任何文件存在。

2 个答案:

答案 0 :(得分:1)

此问题现已修复。

该问题与进口无关。当项目从Angular 8移到Angular 9时,EntryComponents被删除。 app.module中的声明中不再列出充当MatDialog的模块。将其重新添加后,问题便得以解决。

答案 1 :(得分:0)

将此添加到您的导入

import {MatDialog} from '@angular/material/dialog';

对于Angular 9及更高版本

在任何地方导入MatDialog