Angular 4 Form Builder Array添加验证器

时间:2018-01-17 05:47:26

标签: angular angular-reactive-forms angular-forms angular-validation

我坚持如何添加验证器:我正在使用Reactive Forms,我正在使用Form Builder(类的数组)创建一个数组。以下是我如何创建表单,以及设置数组的控件:

创建表单:

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教程的示例..

1 个答案:

答案 0 :(得分:2)

你必须使用setNotes的“map”工作。例如如果您的“注释”具有属性:field1和field2,则可以使用

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