如何设置值以一次形成元素?

时间:2017-02-28 11:49:40

标签: angular

我有一个使用带有大量控件元素的FormBuilder构建的表单,我想根据服务器的响应为它们设置值

目前我这样做:

this.form.controls['a'].setValue(data.a);
this.form.controls['b'].setValue(data.b);     
this.form.controls['c'].setValue(data.c);
this.form.controls['d'].setValue(data.d);

等等。

有没有办法让它更整洁?

1 个答案:

答案 0 :(得分:3)

您可以使用FormGroup的{​​{3}}。

根据API文档。

  

它接受一个与组结构匹配的对象   将名称控制为键。

你可以这样做:

this.form.setValue({
   a:data.a,
   b:data.b,
   c:data.c,
   d:data.d
 });

您需要确保所有控制值一起显示,并且它们会传递您为表单设置的任何validators

您也可以使用@Gunther建议的setValue功能来填写表单。 它可以在没有验证的情况下获取表单值的子集,并尝试匹配它们。