我想创建一个空 formarray,以便我以后可以推送元素。
我知道我可以使用“criterias.controls.length = 0;”来做这样的事情。在声明FormArray之后,我正在寻找一种方法来创建一个带有0长度的formArray作为声明的一部分。
criterias = new FormArray([]);
criterias.controls.length = 0;
values.forEach(item => {
criterias.controls.push(new FormGroup({
'type': new FormControl(item.type, Validators.required),
'criteria': new FormControl(item.criteria, Validators.required)
}));
});
答案 0 :(得分:2)
您可以使用表单构建器类来帮助您创建被动表单
this.baseForm = this.fb.group({
criterias: this.fb.array([])
})
如果你有一个返回表单数组的方法,那么也很好
get criterias(): FormArray {
return this.baseForm.get("criterias") as FormArray
}
基于此,您可以创建一个add方法和一个remove方法
addCriteria() {
this.criterias.push(this.fb.group({
}))
}
removeCriteria(index) {
this.criterias.removeAt(index)
}