如何在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 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']));

但它不显示表单中的数据。但是当它在控制台上检查时它工作。 

http://img1.mukewang.com/63b78f3f0001ad4325350586.jpg

繁华开满天机
浏览 127回答 1
1回答

森栏

你可以尝试使用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-examplehttps://angular.io/guide/reactive-forms
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript