ОШИБКА Ошибка: поле 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}],
})
Другие вопросы по тегам