Angular 2の無効なコントロールはform.valueに含まれません。質問する

Angular 2の無効なコントロールはform.valueに含まれません。質問する

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()

からAngular ドキュメント:

無効ステータスに関係なくすべての値を含める場合は、このメソッドを使用します。それ以外の場合は、valueプロパティがグループの値を取得する最適な方法です。

おすすめ記事