我在表单对象 parentForm
中有一个名为 'question1'
的表单控件,我通过以下方式订阅了它。
它是一个单选按钮,有两个选项 Yes
和 No
,当我选择 No
时,我得到 Yes
,当我选择 Yes
时,它是一个 No
。
this.parentForm.controls['question1'].valueChanges.subscribe(
(selectedValue) => {
// If option `No is selected`
console.log(selectedValue); // displays No. OK
console.log(this.parentForm.value['question1']); // displays Yes. Problem is here
}
);
selectedValue
变量有正确的值,但如果我做 console.log(this.parentForm.value['question1']
,它给出了以前的值。
我试图把一个 setTimeout()
之前,从 this.parentForm.value['question1']
检索值,它只是工作得很好。
setTimeout(() => {
console.log(this.parentForm.value['question1']); // gives the correct value.
}, 500);
但我的问题是,为什么 parentForm
在其控件的值发生变化时不更新,而且我只是在值发生变化后才检索它的值。
注意: 我不想观察 parentForm.valueChanges
,这不是我的要求。