Angular 2使用嵌套组件创建反应形式

前端之家收集整理的这篇文章主要介绍了Angular 2使用嵌套组件创建反应形式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的要求是我需要创建一个带有嵌套组件的表单.
我正在为每个表单字段创建组件,意味着文本框会有
作为一个组件,对于单选按钮,将有另一个组件,如明智的.
< form [formGroup] =“myForm”>
<文本框-成分>< /文本框-成分>
< RAdioBUTTON-成分>< / RAdioBUTTON-成分>
< /形式>

我希望使用Reactive表单来创建此表单,因为我想要我的
html不受影响,仅通过打字稿进行表单验证.

但我无法找到任何解决方案,我们如何能够嵌套反应形式
组件.

经过我的研究和研究实验我找到了一个问题的答案,所以我自己回答.如果它节省了某人的时间,那么我会很高兴.

如果要使用嵌套组件创建活动表单,则可以执行以下操作

在这里,我创建一个带有两个嵌套组件的表单,一个用于textBox&其他用于单选按钮

您的父组件可以是这样的

<form [formGroup]="myForm">
    <child-textBox-component [parentFormGroup]="myForm">
    </child-textBox-component>
    <child-radio-button-component [parentFormGroup]="myForm">
    </child-radio-button-component>
</form>

我们将FormGroup对象作为输入传递给在父组件中创建的子组件
作为子组件的输入,他们将在其中使用此FormGroup对象
组件来设计类的特定控件

您的孩子组件将是这样的

儿童文本框组分

<div class="form-group" [formGroup]="parentFormGroup">
  <label>
    {{control.caption}}
  </label>
  <input class="form-control" type="text" [title]="control.toolTip" 
    [attr.maxlength]="control.width" [name]="control.name"
    [value]="control.defaultValue" [formControlName]="control.name"/>
</div>

儿童单选按钮组分

<div class="form-group" [formGroup]="parentFormGroup">
  <label>
    {{control.caption}}
  </label>
  <div>
      <label *ngFor="let value of control.values; let idx = index"
        class="radio-inline" [title]="control.tooltip">
        <input type="radio" [name]="control.name" [formControlName]="control.name"/>
        {{ value }}
      </label>
  </div>
</div>

这里控件是保存要为这些显示的数据的模型类
儿童组件.

这样,您可以使用嵌套组件生成表单,
所以你不需要单独的形式(可以说大表格)
零件.你可以将它分解为尽可能多的子组件和形式会
易于创造和保持也使用角度2的反应形式.您也可以轻松添加验证.

在回答这个问题之前,我按照这些链接

> something similar on stackoverflow
> angular 2 dynamic forms

猜你在找的Angularjs相关文章