Angular2不支持表单中的嵌套属性

时间:2016-06-13 07:32:23

标签: angular angular2-template angular2-forms

任何方式支持Angular2中的嵌套字段。

ngOnInit() {
 this.form = this._fb.group({

  name: {
    given: ['', Validators.required],
    middle: [''],
    family: ['', Validators.required]
  }

 });
}

模板

<form [ngFormModel]="form">

<input ngControl="name.given" type="text" placeholder="First Name">
<input ngControl="name.middle" type="text" placeholder="Middle Name">
<input ngControl="name.family" type="text" placeholder="Last Name">

</form>

我在控制台中收到Cannot find control 'name.given'错误输出。我已针对name['given']尝试了一些其他语法name[given]ngControl等,但遇到了同样的错误。

如何使用angular2中的嵌套字段?

1 个答案:

答案 0 :(得分:2)

您使用ngControl修改了内联表单(使用FormBuilder)和程序化表单 - 在这种情况下,您需要使用ngFormControl)。

我认为您正在寻找表单组。这是一个示例:

<div ngControlGroup="name" #cgName="ngForm">
  <p>First: <input ngControl="give" required></p>
  <p>Middle: <input ngControl="middle"></p>
  <p>Last: <input ngControl="family" required></p>
</div>

请参阅此plunkr:https://plnkr.co/edit/M4FGTNAx8lo8jzBivH0P?p=preview

相关问题