为了账号安全,请及时绑定邮箱和手机立即绑定

如何在formgroup中设置数组的值

如何在formgroup中设置数组的值

繁华开满天机 2023-01-06 11:01:58
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 data和的表单edit 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']));但它不显示表单中的数据。但是当它在控制台上检查时它工作。 
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

你可以尝试使用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


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信