У меня есть форма управления с именем '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
, а не по моему требованию.