For循环中的Reactive Forms patchValue()

时间:2018-11-21 13:53:58

标签: angular typescript angular2-forms angular-reactive-forms reactive-forms

以下示例代码:

model={name: "D100"
value: "Dying"};

   for (let key in model) {
            if(this.divisionForm.controls.hasOwnProperty(key)) {
                let value = divisionModel[key];
                this.form.patchValue({
                    key: value
                });
            }
        }
  • 有什么方法可以实现循环对象并将键值对插入 Angular反应形式的patchValue()
  • 我无法以表单的形式设置值,我可以通过手动添加setValue()并使用解构来获取对象和set来实现此目的,这会导致较长代码以更大的形式出现。

我已经在这方面指导了很长时间,请帮我。预先感谢。

2 个答案:

答案 0 :(得分:2)

仅散布您的表单值并覆盖要更改的属性。

作为旁注,patchValue应该保留您不提供的键的值,例如提供一个键将使所有其他键保持其实际值。

这是一次大爆炸:https://stackblitz.com/edit/angular-xlxcic?file=src%2Fapp%2Fapp.component.ts

  constructor() {
    const form = new FormGroup({
      name: new FormControl(''),
      surname: new FormControl('')
    });

    form.patchValue({
      ...form.value,
      name: 'name of the user'
    });

    form.patchValue({
      surname: 'surname of the user, with name kept'
    });

    console.log(form.value);
  }

答案 1 :(得分:0)

试试这个,不需要使用循环

this.form.patchValue(model)

有关信息访问,https://dev.to/crazedvic/using-patchvalue-on-formarrays-in-angular-7-2c8c