Если вы хотите использовать двухстороннее связывание, вы должны вместо этого использовать управляемые шаблоном формы .Он позволяет использовать ngModel
для создания двусторонних привязок данных для чтения и записи значений управления вводом.
Принципы реактивных форм следует правилу «одностороннего»,при этом вы следуете неизменному методу управления состоянием ваших форм, так что между вашим шаблоном и логикой компонента существует большее разделение.Подробнее о преимуществах реактивных форм вы можете прочитать по ссылке выше.
Если вы считаете, что реактивные формы - это не то, что вам нужно, вам следует вернуться к использованию шаблонно-управляемых форм, как указано в первом абзаце.
Заметьте, вы не должны использовать ngModelс реактивными формами, поскольку это победит цель неизменности.
Однако, если вы планируете использовать реактивные формы, вы можете упростить свой код, сделав это вместо этого:
1)Инициализация и объявление ваших реактивных форм.
this.myForm = this.formBuilder.group({
firstName: [{value: this.myModel.firstName, disabled: true}],
middleName: [this.myModel.middleName],
lastName: [this.myModel.Name],
age: [this.myModel.age],
});
2) Получить данные реактивной формы:
// since the properties of myModel and myForm FormControl names are the same
this.myModel = {...this.myForm.value};
3) Обновить данные реактивной формы:
this.myForm.patchValue(this.myModel);