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

use*_*288 0 javascript forms typescript angular formgroups

我正在尝试为选择设置基本表单验证。

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

this.formSubmission = new FormGroup(
  {
    triggers: new FormControl(['', [ Validators.required]])
  }
)
Run Code Online (Sandbox Code Playgroud)

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

单击后,将执行以下代码:

console.log('FormGroup Status: ' + this.formSubmission.status)
Run Code Online (Sandbox Code Playgroud)

这将返回 VALID。

其 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>
Run Code Online (Sandbox Code Playgroud)

Sal*_*vic 6

您定义的触发器错误。

  triggers: new FormControl(['', [ Validators.required]])
Run Code Online (Sandbox Code Playgroud)

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

你可能想做的是这样的:

triggers: new FormControl('', [ Validators.required])
Run Code Online (Sandbox Code Playgroud)