在嵌套的反应形式中使用setControl

时间:2018-05-25 01:33:16

标签: angular angular2-forms angular-reactive-forms angular2-formbuilder

我想知道当我在另一个formBuilder组中有一个数组时,我需要做什么才能以反应形式使用“setControl”和“get”。例如:

this.formulario = this.formBuilder.group({
  title: [this.racPessoa.title, [Validators.required]],
  description: [this.racPessoa.description, [Validators.required]],
  person: this.formBuilder.group({
    idPerson:[this.racPessoa.person.idPerson],
    name:[this.racPessoa.person.nome],
    personDocument: this.formBuilder.array([])
  }),
});

在上面的案例中,如果我想处理“标题,我可以写:

this.formulario.setControl('title', something);
this.formulario.get('title');

但是当我想处理一个人内部的“personDocument”时,我不知道如何写上面的两个句子

我试过用:

this.formulario.setControl('person.personDocument', something);
this.formulario.get('person.personDocument')

但它不起作用。

1 个答案:

答案 0 :(得分:4)

git diff branch_1..branch_2的{​​{1}}方法不支持嵌套表单控件结构,只会检测并设置当前图层的表单控件,请参阅 setControl registerControl

对于您的情况,git diff branch_1...branch_2只会将新的表单控件({em>键FormGroup )添加到您当前的图层(您可以在formGroup的控件中确认)。< / p>

setControl

因此,您需要在确切的图层添加表单控件,例如:

this.formulario.setControl('person.personDocument', something);