如何设置嵌套的formBuilder组的值

Fel*_*des 5 forms typescript angular2-forms angular angular-reactive-forms

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

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],
    }),
  });
}
Run Code Online (Sandbox Code Playgroud)

我通常会设置这样的值:

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

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

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

编辑:我正在使用这种方式

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

dev*_*033 8

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

this.user.get('questions.quest2').setValue(false);
Run Code Online (Sandbox Code Playgroud)

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

this.user.get('questions.quest2').patchValue(false);
Run Code Online (Sandbox Code Playgroud)

要么

this.user.patchValue({questions: {quest2: false}});
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢男人!它在这里工作.我这样使用它:This.user.patchValue({questions:{quest2:'false'}}); (3认同)