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],
})
});
我被困在如何添加验证器上:我正在使用 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],
})
});