所以我有一个复杂的形式来创建一个实体,我想用它来编辑,我也在使用新的角形式API。我将表单的结构与从数据库中检索的数据完全相同,因此我想将整个表单的值设置为此处检索的数据,这是我想要做的示例:
this.form = builder.group({ b : [ "",Validators.required ],c : [ "",d : [ "" ],e : [ [] ],f : [ "" ] }); this.form.value({b:"data",c:"data",d:"data",e:["data1","data2"],f:data});
PS:NgModel不能用于新的表单api我也不介意在模板中使用单向数据绑定
<input formControlName="d" value="[data.d]" />
这有效,但在阵列的情况下会很痛苦
Angular 2.0最终解决方案:
要设置所有FormGroup值,请使用setValue:
this.myFormGroup.setValue({ formControlName1: myValue1,formControlName2: myValue2 });
要仅设置某些值,请使用patchValue:
this.myFormGroup.patchValue({ formControlName1: myValue1,// formControlName2: myValue2 (can be omitted) });
使用第二种技术,并非所有值都需要提供,并且未设置值的字段不会受到影响。