错误TypeError:“ _ co.bankId未定义”(角度7)

时间:2019-02-26 15:50:20

标签: angular angular-material angular7 angular-formbuilder angular-material-7

我的角度应用程序中有一个子项目。在这个子项目中,我想创建一个带有输入字段的表单。这些字段需要验证,并且如果该字段无效(例如必填),则需要显示错误。好吧,问题在于,“ formControlName”属性未定义(请看此线程的标题)。

代码定义如下:

// Component file:
...
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
...

export class ConfigFormComponent implements OnInit {
  orderReport: FormGroup;

  createForm() {
    return this.fb.group({
      bankId: ['', Validators.required],
      ...
    });
  }

  constructor(private fb: FormBuilder) { 
    this.orderReport = this.createForm();
  }
}

和HTML:

 // View file:
    ...
    <mat-card>
       <form [formGroup]="orderReport">
          <mat-form-field appearance="fill">
             <mat-label>Bank ID</mat-label>
             <input matInput placeholder="Bank ID" formControlName="bankId" required>
             <mat-error *ngIf="bankId.invalid">The field shows an error.</mat-error>
          </mat-form-field>
          ...
       </form>
    </mat-card>

我还将FormsModuleReactiveFormsModule添加到AppModule文件中。有任何想法吗?

我正在使用Angular 7.3.2和Angular Material 7.3.2。

1 个答案:

答案 0 :(得分:2)

要访问表单控件的验证状态,您需要使用以下方式获取对该表单控件的引用:orderReport.get('bankId'),然后可以访问invalid

您的HTML代码应为:

<mat-error *ngIf="orderReport.get('bankId').invalid">The field shows an error.</mat-error>