如何创建空的formarray

时间:2018-02-26 15:55:39

标签: angular

我想创建一个 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)
    }));
  });

1 个答案:

答案 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)
  }