3

我正在尝试为 angular 2 反应形式 formArray 对象设置初始值。

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

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

这是一个演示该问题的 plunker:https ://plnkr.co/edit/j1S80CmPBF1iHI5ViEia?p=preview

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

任何想法我做错了什么?

4

1 回答 1

3

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

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

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

希望能帮助到你。

于 2016-11-29T21:06:04.120 回答