Angular mat-form-filed 找不到“ngForm”

Hom*_*one 1 angular-material angular angular-forms

在我的 Angular 应用程序中:我想从这种工作良好的表单切换:

<form autocomplete="off" #searchActor="ngForm"
    (ngSubmit)= submitForm(searchActor.value)
    class="ml-2 mr-2 my-auto">
    <input type="text" name="actorSearch"
        (ngModel)="model.searchActor">
 </form>
Run Code Online (Sandbox Code Playgroud)

对于这种有棱角的材料:

    <mat-form-field #searchActor="ngForm"
                        (ngSubmit)= submitForm(searchActor.value)
                        class="ml-2 mr-2 my-auto">
          <mat-label>Custom Search</mat-label>
            
          <input matInput type="text"
                          name="actorSearch"
                          placeholder="Ex. young, cartoon..." 
                          (ngModel)="model.searchActor">
          <button mat-button *ngIf="value" matSuffix mat-icon-button aria-label="Clear" (click)="value=''">
            <mat-icon>close</mat-icon>
          </button>
   </mat-form-field>
Run Code Online (Sandbox Code Playgroud)

这是我的进口:

imports: [
    BrowserModule,
    AppRoutingModule,
    HttpClientModule,
    FormsModule,
    BrowserAnimationsModule,
    MatSliderModule,
    MatSlideToggleModule,
    MatSelectModule,
    MatButtonModule,
    MatIconModule,
    MatInputModule,
    MatFormFieldModule,
  ],  
Run Code Online (Sandbox Code Playgroud)

但是每当我加载我的应用程序时,我都会收到此错误:

错误日志

知道我该如何解决这个问题吗?

小智 5

你应该留下表单标签

<form autocomplete="off" #searchActor="ngForm" (ngSubmit)= submitForm(searchActor.value) class="ml-2 mr-2 my-auto">
Run Code Online (Sandbox Code Playgroud)

并描述里面的每个字段

这是错误的语法
<mat-form-field #searchActor="ngForm"

像这样的东西

<form novalidate #searchActor ="ngForm">
  <mat-form-field class="example-full-width">
    <input matInput placeholder="Favorite food" name="myname" required [(ngModel)]="comment">
    <mat-error>Is required lol</mat-error>
  </mat-form-field>
</form>
Run Code Online (Sandbox Code Playgroud)