10

我的嵌套表单目前以这种方式格式化:

ngOnInit() {
  this.user = this.fb.group({
    name: ['', [Validators.required, Validators.minLength(2)]],
    quest1: ['', Validators.required],
    account: this.fb.group({
      email: ['', Validators.required],
      confirm: ['', Validators.required]
    }),
    questions: this.fb.group({
        quest2: ['', Validators.required],
    }),
  });
}

我通常会这样设置值:

this.user.controls['quest1'].setValue('false');

但是因为 formGroups 是嵌套的,所以我不确定如何设置嵌套值。

如何为“quest2”设置值?在嵌套 formGroup 中设置表单控件值的正确语法是什么?

4

1 回答 1

17

您可以使用以下语法来执行此操作:

this.user.get('questions.quest2').setValue(false);

请注意,如果缺少某些控件,该setValue 方法将引发错误。因此,如果您不想更新所有控件,可以使用patchValue

this.user.get('questions.quest2').patchValue(false);

或者

this.user.get(['questions', 'quest2']).patchValue(false);

或者

this.user.patchValue({questions: {quest2: false}});
于 2017-06-15T03:13:32.150 回答