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 を REST API に渡すことができるようにすることです。無効な項目が含まれていない場合、これは明らかに不可能です。
何か見落としているのでしょうか、それともこれは想定された動作でしょうか? 無効な項目を form.value に含めるように Angular に指示する方法はありますか?
あなたのご意見をお待ちしています。
ベストアンサー1
以下を使用できます:
this.notelinkingForm.getRawValue()
無効ステータスに関係なくすべての値を含める場合は、このメソッドを使用します。それ以外の場合は、
value
プロパティがグループの値を取得する最適な方法です。