如何创建空的formarray

问题描述 投票:0回答:1

我想创建一个空的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)
    }));
  });
angular
1个回答
3
投票

您可以使用表单构建器类来帮助您创建被动表单

    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)
  }
© www.soinside.com 2019 - 2024. All rights reserved.