2017-11-04 6 views
0

私はいくつかのデフォルト値を持ち、ユーザーが何かを変更し、ユーザーが何かを変更して初期状態に戻すまで、保存ボタンを無効にしたいという反応的なフォームを持っています。角度:フォームが初期状態に戻っているかどうかを確認するにはどうすればよいですか?

私はvaluechangesに登録することができますが、いくつかの変更(ユーザーが変更を元に戻した後)の初期状態に戻って、保存ボタンを無効にするかどうかを知りたいと思います。

ユーザーが何かを変更すると汚れてしまい、ユーザーが変更を元に戻していない場合は、もう一度pristineと表示されないので、Form.dirtyは使用できません。

他の方法でJSON.stringifyを比較しますか?

+1

少なくとも、ここには他のオプションもあります:https://stackoverflow.com/questions/201183/how-to-determine-equality-for-two-javascript-objects – Alex

答えて

0

私はこれを行い、 "ハッシュ"解決策を講じなければなりませんでした。 私はperfに与える影響を完全にチェックしていないことに注意してください。 私は、ラグのないより大きなフォームの8つの平均的なサブフォームの変化を検出するのに使用しましたが、依然として注意してください。

は私に説明してみましょう:

  • まず、私は私が見つけることができる最速、最軽量のハッシュ方法を探したとゲイリー裁判所からmurmurhashを選びました。

  • 次に、データがロードされると、私は元のフォームのハッシュを保存します。

  • 次に、フォームからの各値変更イベントで、私はそれをハッシュし、結果を保存された初期ハッシュと比較します。

  • そしてvoilà!

私はそれが役に立ちそうです。

関連する問題