Angular patchValue不起作用

时间:2018-07-18 02:42:25

标签: angular angular-reactive-forms

我正在尝试在主窗体对象中更改一个对象。我首先制作了一个简单的fieldFormStructure,只是为了维护裸露的骨架。

     fieldFormStructure = this.fb.group({
            name: '',
            Properties: this.fb.group(
                {
                    referenceTypeData: this.fb.group(
                        {
                            'SourceId': this.fb.array([]),
                            'SourceIdString': '',
                        }),
                    imageTypeData: this.fb.group({
                        'ItemSelectType': '',
                        'Source': this.fb.group({
                            DAMSource: '',
                            ContentStudioSource: '',
                        })
                    }),
                }
            )
        });

然后在ngOnInit上初始化表单。

this.fieldForm = this.fieldFormStructure;

除非我尝试对其进行一些更改,否则这一切都很好。

在功能更改上,我基本上是在尝试重置fieldForm。

this.fieldForm.get('Properties').patchValue(_.cloneDeep(this.fieldFormStructure.get('Properties').value));

fieldForm中没有任何变化。怎么了?

1 个答案:

答案 0 :(得分:0)

例如,如果您有

这样的表单组
this.sampleForm=new FormGroup(
      {
        email:new FormControl(null,Validators.required),
        password:new FormControl(null,Validators.required),
        gender:new FormControl('male'),
        education:new FormGroup(
          {
            sslc:new FormControl('Pass'),
            hsc:new FormControl('Pass')
          }
        ),
        input:new FormArray([])
      }
    );

这是设置补丁值的方法

 this.sampleForm.patchValue({
    email:'lachu@gmail.com',
    input:['data',''] //for array index 0 i am setting patch value and second 
    one i am setting null value 
  });