У меня есть форма управления с именем 'question1' внутри объекта формы parentForm, и я подписался на него следующим образом.
Его переключатель с двумя параметрами Yes и No, когда я выбираю No, я получаю Yes и когда я выбираю Yes его a 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, а не по моему требованию.