我期待Angular 2 documentation,并且无法找到有关如何使用 formGroup 的最佳做法。
是否必须将
formGroup
与表单标记括起来?
我看过这个堆栈溢出问题:
formGroup expects a FormGroup instance
我已经创建了这个组件模板:
<div [formGroup]="infoIdentityForm">
<div class="info-identity_title" *ngIf="showTitle">
<div class="group-title">Titre</div>
<div class="group-radio">
<span *ngFor="let choice of enumTitleValue">
<label>{{choice}}</label>
<input type="radio" formControlName="title" name="title" [id]="choice"/>
</span>
</div>
</div>
<div class="info-identity_firstname">
<div class="group-title">Prénom</div>
<div class="group-input">
<input type="text" class="form-control" formControlName="firstName" maxlength="25">
</div>
</div>
<div class="info-identity_lastname">
<div class="group-title">Nom</div>
<div class="group-input">
<input type="text" class="form-control" formControlName="lastName" maxlength="25">
</div>
</div>
</div>
我正在尝试避免使用嵌套表单标记
答案 0 :(得分:6)
您正在寻找的是formGroupName
指令
此指令只能与父FormGroupDirective一起使用 (选择器:[formGroup])。
它接受您要链接的嵌套FormGroup的字符串名称, 并将查找在父级中使用该名称注册的FormGroup 您传递给FormGroupDirective的FormGroup实例。
当您要验证a时,嵌套表单组可以派上用场 表格的子组与其他表格分开或当您愿意时 将某些控件的值分组到它们自己的嵌套对象中。
https://angular.io/docs/ts/latest/api/forms/index/FormGroupName-directive.html
<div formGroupName="infoIdentityForm">
</div>
根据文档,在某些时候需要在<form [formGroup]="formProperty">
内进行合法定义,并避免使用多个<form>
代码。
如果您有子组件,则仍需要[formGroup]
,但它不在<form>
标记中。如果你想在一个大的表单中使用它,那么你需要从父类输入你的FormGroup并将它设置为:
<td [formGroup]="parentGroup">
<input type="text" formControlName="myControl"
</td>
@Input() parentGroup: FormGroup;