реактивные формы в угловой с отключенным значением управления формой не могут динамически изменяться

#angular-reactive-forms #angular11

Вопрос:

У меня есть реактивная форма с элементом управления формой, который имеет атрибут disabled, но когда я пытаюсь изменить его значение с помощью значения исправления, оно заканчивается на «неопределенный». введите код здесь

это форма, и я автоматически изменяю дату окончания, когда пользователь вводит дату начала и продолжительность, поэтому мне нужно, чтобы она была отключена:

  this.newProcessForm = new FormGroup({
  'start_date':new FormControl(null, Validators.required),
  'end_date':new FormControl({value: null, disabled: true}, Validators.required),
  'ex_duration':new FormControl(null, Validators.required),
})
 

здесь я изменяю значение :

 const newEndDate = this.dCalc.SubTaskEndDateCalculation(this.newProcess).toLocaleDateString();
this.newProcessForm.patchValue({
  'end_date' : newEndDate
}) 
 

и он отображается в шаблоне правильно, но когда я отправляю форму, значение этого поля возвращается неопределенным, как это img введите описание изображения здесь

Ответ №1:

Это сработало, используя атрибут только для чтения в шаблоне и удалив отключенный элемент управления формой.

таким образом, код является

 this.newProcessForm = new FormGroup({
  'start_date':new FormControl(null, Validators.required),
  'end_date':new FormControl(null, Validators.required),
  'ex_duration':new FormControl(null, Validators.required),
})
 

а в шаблоне мат-ввод

 <input type="text" matInput id="end_date" formControlName="end_date" readonly>