Возможно ли иметь Angular 2 formGroup без тега формы?

Мне нужна документация по Angular 2, и нет никакого способа узнать, как лучше всего использовать formGroup.

Обязательно ли заключать formGroup в тег формы?

Я рассмотрел этот вопрос о переполнении стека:

formGroup ожидает экземпляр FormGroup

Я создал этот шаблон компонента:

<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>

Я пытаюсь избегать использования вложенных тегов формы


person HDJEMAI    schedule 15.11.2016    source источник


Ответы (1)


То, что вы ищете, это директива formGroupName

Эту директиву можно использовать только с родительской директивой FormGroupDirective (селектор: [formGroup]).

Он принимает строковое имя вложенной FormGroup, которую вы хотите связать, и будет искать FormGroup, зарегистрированную с этим именем, в родительском экземпляре FormGroup, который вы передали в FormGroupDirective.

Вложенные группы форм могут пригодиться, когда вы хотите проверить подгруппу формы отдельно от остальных или когда вы хотите сгруппировать значения определенных элементов управления в их собственный вложенный объект.

https://angular.io/docs/ts/latest/api/forms/index/FormGroupName-directive.html

<div formGroupName="infoIdentityForm">
</div>

Что, согласно документации, в какой-то момент должно быть в <form [formGroup]="formProperty">, чтобы быть юридически определенным и избегать использования нескольких тегов <form>.

Если у вас есть дочерний компонент, вам все еще нужен [formGroup], но он может быть не в теге <form>. Если вы хотите использовать все это в одной большой форме, вам нужно будет ввести свою группу форм из родителя и установить ее следующим образом:

<td [formGroup]="parentGroup">
  <input type="text" formControlName="myControl"
</td>
@Input() parentGroup: FormGroup;
person silentsod    schedule 15.11.2016