Angular 4 表单生成器数组添加验证器

Angular 4 Form Builder Array Add Validator

我被困在如何添加验证器上:我正在使用 Reactive Forms,我正在使用 Form Builder 创建一个数组(一个 class 的数组)。以下是我创建表单和设置数组控件的方式:

正在创建表单:

createForm(): void{
 this.workOrderForm = this.fb.group({
  workOrderStatus: ['', Validators.required],
  completedDate: '',
  workOrderNotes : this.fb.array([]);
 });
}

然后在创建表单后,我调用一个方法来添加另一个控件,它是一个 WorkOrderNote 类型的数组:

setNotes(notes: WorkOrderNote[]) {
 const noteFGs = notes.map(note => this.fb.group(note));
 const notesFormArray = this.fb.array(noteFGs);
 this.workOrderForm.setControl('workOrderNotes', notesFormArray);
}

WorkOrderNote 有 属性 调用 notes。我想在上面设置一个必需的验证器。我无法在 Angular 教程中找到示例..

您必须使用 setNotes 的 "map" 进行一些操作。例如如果你的 "note" 有属性:field1 和 field2,你可以使用

   const noteFGs = notes.map(note => {
      return this.fb.group(
         {
          field1:[note.field1],
          field2:[note.field2,Validators.required],
         })
    });