是否可以使用没有表单标记的Angular 2 formGroup?

时间:2016-11-15 16:31:47

标签: angular forms tags angular-reactive-forms angular-forms

我期待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>

我正在尝试避免使用嵌套表单标记

1 个答案:

答案 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;