ОШИБКА Ошибка: поле mat-form-field должно содержать MatFormFieldControl при использовании документации API?
Я импортировал MatFormFieldModule
нравится:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
//import { MaterialModule } from './material/material.module';
import {MatFormFieldModule} from '@angular/material/form-field';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
// MaterialModule,
MatFormFieldModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
В app.component.html
У меня есть (взято прямо из документации API):
<mat-form-field>
<input matInput placeholder="Input">
</mat-form-field>
ERROR Error: mat-form-field must contain a MatFormFieldControl.
Есть идеи?
И я получаю ошибку:
ERROR Error: mat-form-field must contain a MatFormFieldControl.
1 ответ
Решение
Вы должны импортировать MatInputModule
также:
import {MatInputModule} from '@angular/material/input';
@NgModule({
imports: [
MatFormFieldModule,
MatInputModule,
...
]
})
в противном случае Angular не знает, как инициализировать директиву для <input matInput
которая обеспечивает MatFormFieldControl
:
@Directive({
selector: `input[matInput], textarea[matInput], select[matNativeControl],
input[matNativeControl], textarea[matNativeControl]`,
...
providers: [{provide: MatFormFieldControl, useExisting: MatInput}],
})