1

我的 Angular 应用程序中有一个子项目。在这个子项目中,我想创建一个带有输入字段的表单。如果字段无效(例如,必填),这些字段需要验证并且需要显示错误(可选)。好吧,问题是,“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>

我还将FormsModuleand添加ReactiveFormsModule到 AppModule 文件中。有人有想法吗?

我将 Angular 7.3.2 与 Angular Material 7.3.2 一起使用。

4

1 回答 1

3

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

您的 HTML 代码应为:

<mat-error *ngIf="orderReport.get('bankId').invalid">The field shows an error.</mat-error>
于 2019-02-26T15:55:22.620 回答