2016-10-11 8 views
2

ユーザーが手作業でフィールドを初期値に戻した後に、入力クラスをng-dirtyからng-pristineにリセットしないというAngularの決定の理由は何ですか?ユーザーがフィールドを手動でリセットした後でng-dirtyがリセットされない?

ユーザーが実際にフォームのデータの一部を変更した場合にのみ、保存ロジックを実行します。手動で初期状態を保持し、送信時の違いを確認するよりも良い方法はありますか?

+0

リセット方法? 。 。 。 –

+0

たとえば、入力の初期値は「hello」、ユーザタイプ「a」、新しい入力値は「hello」、状態はダーティです。ユーザーがバックスペースを押すと、新しい値が再び 'hello'になります。角度(imho)は状態を非ダーティにリセットします。 –

答えて

1

ステータスはdirtyです。これはユーザーが値を変更したことを意味します。 Angularでは元の値は追跡されないため、元の値が復元されたかどうかはわかりません。

値が変更されたかどうかを知りたい場合は、値を保存して、submitに変更があった場合はそれを比較する必要があります。

+0

"ステータスがダーティです。これはユーザーが値をタッチしたことを意味します。" - それは、国家が「触れた」と「言わない」というものではないか?あなたは「ユーザーが価値に触れた​​」と言ってこれを暗示することさえありません:-) –

+0

あなたは正しいです、申し訳ありません。 AFAIKはそれでも比較するために元々の価値を維持していません。 'ng-touched'は、コントロールがフォーカスを持っているかどうかをチェックするだけです。 –

+0

これは本当に残念です。彼らが変更を追跡する機能を含まない理由について何か知っていますか?私のすべての分野にこのような論理を書くのは本当に面倒です...残念です。私は機能要求を作成します。 –

関連する問題