【问题标题】:How to create empty formarray如何创建空的formarray
【发布时间】:2018-02-26 15:55:38
【问题描述】:

我想创建一个 empty 表单数组,以便以后可以推送元素。

我知道我可以使用“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】:

    您可以使用表单构建器类来帮助您创建反应式表单

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

    【讨论】:

    • 非常感谢@Ricardo,我认为 this.fb.array([]) 将创建一个包含一个元素而不是空元素的数组(零长度)。
    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2020-05-31
    • 2018-01-18
    • 1970-01-01
    • 2017-04-28
    • 2019-08-07
    • 2019-05-06
    相关资源
    最近更新 更多