设置初始值Angular 2 reactive formarray

时间:2016-11-29 20:34:23

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

我正在尝试设置角度2反应形式formArray对象的初始值。

即使用于设置表单值的json对象包含具有多个条目的数组值,也只显示第一个条目,“form.value”也只显示第一个条目。

我使用语法(<FormGroup>this.myForm).patchValue(value, { onlySelf: true });在表单上设置初始值。

以下是一名说明问题的傻瓜:https://plnkr.co/edit/j1S80CmPBF1iHI5ViEia?p=preview

我使用https://scotch.io/tutorials/how-to-build-nested-model-driven-forms-in-angular-2中的示例创建了plunker。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:3)

您将addresses设置为表单数组,而initAddress()方法只返回一个元素。 如果您向addresses数组添加第二个调用,则会获得第二个地址。

this.myForm = this._fb.group({
  name: ['', [Validators.required, Validators.minLength(5)]],
  addresses: this._fb.array([
    this.initAddress(),
    this.initAddress()
  ])
});

这听起来有点愚蠢,但它会返回数组中的元素,如果超过数组中的元素数量,你将得到一个空元素。

希望它有所帮助。