angular2重用另一个

时间:2016-12-12 10:01:15

标签: angular

使用formbuilder我创建了2个表单组件,另一个

我需要的是模板使用并将其合并到parentForm formBuilder我该如何实现?

所以我的伪代码是这样的

component:childForm
template: <inputA> <inputB>
class: formbuilder.group(inputA+inputB)

现在我需要在我的tempalte中重复使用这个:

component:parentForm
template: <childForm> <inputC> <inputD>
class: formbuilder.group(inputC+inputD+new group.childForm)

像这样我不需要在inputA和inputB中重新创建,因为我已经在这里,现在我可以检查parentForm.valid的有效性来检查所有输入吗?

我不知道怎么做到这一点?任何真实的例子?请用真正的代码onyl吗?

1 个答案:

答案 0 :(得分:0)

我用过这个:

  private inheritControls(target: FormGroup, source: FormGroup) {
    Object.keys(source.controls)
      .map(name => target.addControl(name, source.controls[name]));
  }

使用:

  @ViewChild(FormGeneralComponent) general: any;
  @ViewChild(FormDatabaseComponent) database: any;
  @ViewChild(FormUsersComponent) users: any;

    this.inheritControls(this.setupForm, this.general.generalForm);
    this.inheritControls(this.setupForm, this.database.databaseForm);
    this.inheritControls(this.setupForm, this.users.usersForm);

可能会有点&#34;脏&#34;但它有效......