如何设置嵌套 formBuilder 组的值
How do I set the value of a nested formBuilder group
我的嵌套表单目前的格式是这样的:
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.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}});
我的嵌套表单目前的格式是这样的:
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.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}});