繁体   English   中英

如何在formgroup中设置数组的值

[英]How to set the value of array in formgroup

if (Object.prototype.hasOwnProperty.call(data, 'checklists')) {
      if (Array.isArray(data.checklists)) {
        data.checklists.map((dt: any) => {
          dt.tasks.forEach((task: any) => {
            const dataArray = new FormGroup({});
            dataArray.addControl('failed', new FormControl(true, Validators.required));
            dataArray.addControl('remarks', new FormControl('', Validators.required));
            dataArray.addControl('task', new FormControl(task));
            formArray.push(dataArray);
          });
        });

        data.checklists.map((dt: any) => {
          assetArray.push(dt.asset);
        });
      }
    }
    const formField = {
      remarks: new FormControl(''),
      tasks: formArray,
      room: this.creds.credentials['room'],
      asset: assetArray
    };
    return this.fb.group(formField);

如何使用新的 FormControl 从 addControl 设置值,因为我要做的是创建一个带有create dataedit data的表单。

我试图将其更改为:

            dataArray.addControl('failed', new FormControl(task['failed], Validators.required));
            dataArray.addControl('remarks', new FormControl(task['remark'], Validators.required));
            dataArray.addControl('task', new FormControl(task['task']));

但它不显示表单中的数据。 但是当它在控制台上检查时它可以工作。 在此处输入图像描述

您可以尝试使用patchValue来设置值。

这是我在这里写的一个小例子。

const group = new FormGroup({
  control1 : new FormControl(),
  control2 : new FormControl(),
  control3 : new FormControl()
});

const array = new FormArray([this.group]);

在这里,如果您需要为 FormGroup 设置值,请尝试使用 patchValue() 为组中的 FormControl 设置值

this.group.patchValue({control1:'your value here'})
this.array = new FormArray(this.group)

以下链接可能会对您有所帮助,

https://www.concretepage.com/angular-2/angular-2-formgroup-example

https://angular.io/guide/reactive-forms

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM