我在表单对象 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,这不是我的要求。