我想创建一个 空 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)
}));
});
最佳答案
您可以使用表单构建器类来帮助您创建响应式(Reactive)表单
this.baseForm = this.fb.group({
criterias: this.fb.array([])
})
如果您有一个返回表单数组的方法也很好
get criterias(): FormArray {
return this.baseForm.get("criterias") as FormArray
}
基于此,您可以创建添加方法和删除方法
addCriteria() {
this.criterias.push(this.fb.group({
}))
}
removeCriteria(index) {
this.criterias.removeAt(index)
}
关于angular - 如何创建空的formarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48992273/