我的嵌套表单目前以这种方式格式化:
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中设置表单控件值的正确语法是什么?
编辑: 我正在用这种方式
this.user.patchValue({ questions: {quest2: 'false'}});
答案 0 :(得分:6)
您可以使用以下语法执行此操作:
this.user.get('questions.quest2').setValue(false);
请注意,如果缺少某些控件,setValue
方法会抛出错误。因此,如果您不想更新所有控件,可以使用patchValue
:
this.user.get('questions.quest2').patchValue(false);
或
this.user.patchValue({questions: {quest2: false}});