如何创建带有对象的Form Builder组?

时间:2018-08-28 15:14:17

标签: angular angular-reactive-forms formbuilder

这是我的component.ts:

 constructor(
    private fb: FormBuilder,
  ) {}

  formobject = {} as GKCLForm1;
  gkclForm1 = this.fb.group({
    gcklform1 : this.fb.control(this.formobject)
  });

这里是component.html:

<form [formGroup]="gkclForm1">
  <label>
    info:
    <input type="text" formControlName="gcklform1.info">
  </label>

  <label>
    id:
    <input type="text" formControlName="gcklform1.id">
  </label>
</form>

我有一个类型为GKCLForm1的对象。 info和id是该对象的属性。

我想从一个对象创建一个表单组吗? (我正在使用Angular 6)

1 个答案:

答案 0 :(得分:1)

不太确定您要在此处实现的目标。通常,使用反应形式以便它们可以产生类似于数据模型的值(通常在提交时)。

原始类型值和复杂类型值之间存在差异,因此两种类型使用不同的AbstractControl。如果您有一个复杂的类型(例如一个对象),那么您也应该使用FormGroup。如果您使用原始类型(字符串,数字等),则应使用FormControl。我很确定,即使您尝试对复杂的数据类型使用FormControl,也无法从中获得任何收益。

对于您的情况,我认为您应该为FormGroup使用gcklform1

这是您推荐的StackBlitz