当标记为必需的控件为空时,为什么我的 Angular FormGroup 有效?

Why is my Angular FormGroup Valid when a control that is marked as required is empty?

我正在尝试为 select.

设置基本的表单验证

在我的构造函数中,我有以下 FormGroup

this.formSubmission = new FormGroup(
  {
    triggers: new FormControl(['', [ Validators.required]])
  }
)

我在屏幕上有一个按钮来测试 FormGroup 的有效性,它总是返回有效,即使没有 selected 的“触发器”。

单击时执行以下代码:

console.log('FormGroup Status: ' + this.formSubmission.status)

这将 return 有效。

可在此处找到其中的 HTML 部分:

<div [formGroup]="formSubmission">
  <mat-form-field appearance="fill">
    <mat-label>Triggers</mat-label>
    <mat-select 
    formControlName="triggers" multiple
    >
      <mat-option *ngFor="let trigger of triggersList" [value]="trigger.TRIGGER_NAME">{{trigger.TRIGGER_NAME}}</mat-option>
    </mat-select>
  </mat-form-field>
</div>

你定义的触发器有误。

  triggers: new FormControl(['', [ Validators.required]])

将导致触发器:数组。 第一个参数是值,第二个是验证器、asyncValidators 或 options

您可能想做的是:

triggers: new FormControl('', [ Validators.required])