【问题标题】:how to fix can't bind to formControl error如何修复无法绑定到 formControl 错误
【发布时间】:2022-03-16 01:34:28
【问题描述】:

谁能帮我解释为什么它说“不能绑定到'formControl',因为它不是'input'的已知属性。”即使我已经在我的模块中导入了,并且我还有另一个使用 FormControl、FormGroup 或两者的组件,但它并没有给我这种错误,但是这个错误。我不确定为什么我不断收到此错误。

我已经在 app.module.ts 文件中导入了 ReactiveFormsModule。我可以在其他组件中使用 formControl,但不知道为什么我不能在这个组件中使用。

HTML

<div class="component">
    <mat-chip-list *ngIf="editMode" #chipList >
         <div>
            <mat-chip> </mat-chip>
         <div>
            <div >
                <input matInput  #input  [formControl]="tagCtrl2"  [(ngModel)]="tagIn"  placeholder="Select or Create a tag" [matAutocomplete]="auto"
                    (focusout)="hideTagInput()" (keyup.enter)="addTag()"(keyup.escape)="hideTagInput()"
                    (keydown.backspace)="$event.stopPropagation();" (keydown.space)="$event.stopPropagation();" [matChipInputFor]="chipList" />
            </div>

            <mat-autocomplete #auto="matAutocomplete" (optionSelected)="selected($event)">
                <mat-option *ngFor="let tag of filteredTags | async" [value]="tag">
                    {{tag}}
                </mat-option>
            </mat-autocomplete>

    <mat-chip-list>
</div>

TS

import { FormControl } from '@angular/forms';

export class TagsComponent implements OnInit {
   tagCtrl2 = new FormControl();

【问题讨论】:

  • 请提供您的问题的重现者,例如在 stackblitz 上。你要么没有导入ReactiveFormsModule,要么你在错误的地方导入了。
  • 每次在同一个标​​签[(ngModel)]和formControlName或[formControl]中看到,一只小猫就死了(选择ReactiveForm Template Driven form)跨度>
  • @Eliseo 嗨,请解释一下.. thx
  • 你不能在同一个输入中同时使用 [(ngModel)] 和 [formControl]。顺便说一句,您需要在 每个模块 中导入 ReactiveFormsModule,该模块具有使用 ReactiveForms 的组件(不仅在 app.module.ts 中)。

标签: html angular angular-material form-control


【解决方案1】:

在你的模块文件中,你应该像这样将这个 ReactiveFormsModule 添加到你的模块文件中:

import { ReactiveFormsModule } from '@angular/forms';

@NgModule({
  imports: [
    ReactiveFormsModule
  ]
})
export class CommonModule {}

【讨论】:

  • 嗨,谢谢你的小费,但我已经有了。我能够在其他组件中使用 FomControl,但我不确定它为什么会给我这样的错误。
【解决方案2】:

试试这个

 <input type="text" [formControl]="form.get('tagCtrl2')">

或者试试这个

<input type="text" formControlName="tagCtrl2">

你导入MatAutocompleteModule了吗?

【讨论】:

    猜你喜欢
    • 2021-04-26
    • 2020-11-14
    • 2017-03-31
    • 2019-10-25
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多