Percebi que se eu desabilitar um controle em uma forma reativa Angular 2, o controle não será incluído no form.value. Por exemplo, se eu definir meu formulário como a seguir:
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)
});
e verifique this.notelinkingForm.value, se todos os controles estiverem habilitados, a saída será:
{"Enabled":true, "LinkToPreceeding": true, LinkingTolerance:"100"}
No entanto, quando alguns dos controles estão desativados, será:
{"Enabled":true}
Observe como os controles desabilitados são excluídos.
Minha intenção é que, quando o formulário for alterado, eu quero poder passar o form.value com todas as propriedades dele para minha API restante. Isso obviamente não será possível se não contiver os itens desabilitados.
Estou faltando alguma coisa aqui ou esse é o comportamento esperado? Existe uma maneira de dizer ao Angular para incluir os itens desabilitados no form.value?
Dê as boas-vindas aos seus pensamentos.