Я заметил, что если я отключу элемент управления в реактивной форме Angular 2, элемент управления не будет включен в form.value. Например, если я определю свою форму, как показано ниже:
this.notelinkingForm = new FormGroup({
Enabled: new FormControl(settings.Enabled, Validators.required),
LinkToPreceeding: new FormControl({value: settings.LinkToPreceeding, disabled: !settings.Enabled}, Validators.required),
LinkingTolerance: new FormControl({value: settings.LinkingTolerance, disabled: !settings.Enabled}, Validators.required)
});
и проверьте this.notelinkingForm.value, если все элементы управления включены, то вывод будет следующим:
{"Enabled":true, "LinkToPreceeding": true, LinkingTolerance:"100"}
Однако, когда некоторые элементы управления отключены, это будет:
{"Enabled":true}
Обратите внимание, как исключены отключенные элементы управления.
Мое намерение состоит в том, чтобы при изменении формы я мог передать form.value со всеми содержащимися в нем свойствами в мой API для отдыха. Очевидно, это будет невозможно, если он не содержит отключенных элементов.
Мне что-то здесь не хватает или это ожидаемое поведение? Есть ли способ указать Angular включить отключенные элементы в form.value?
Приветствую твои мысли.
источник
readonly
иdisabled
. Но это не относится, например, к флажкам и переключателям, как я описал в ответе ниже. В этих случаях мне не нравилось, что я должен получать данные по-другому и кодировать что-то специально для этого случая.Другой вариант, который я использую:
this.form.controls['LinkToPreceeding'].value;
источник
Спасибо @Sasxa за то, мне 80% того, что мне было нужно.
Для тех из вас, кто ищет решение той же проблемы, но для вложенных форм я смог решить, изменив свой обычный
к
источник
Если вы используете
readonly
вместо этого,disabled
он все еще недоступен для редактирования, а данные будут включены в форму. Но это возможно не во всех случаях. Например, он недоступен для переключателей и флажков. См. Веб-документацию MDN . В таких случаях вам необходимо подать заявку на другие предлагаемые здесь решения.источник