リセットしたいフォームがあります。$setPristine
Angular でこのメソッドを使用すると、ある程度はうまくいきます。
ただし、次の孤立したケースを見ると、リセット ボタンを押してフォームをリセットすると、save
メッセージがコンソールに記録されることがわかります。これは、フォームに加えられた変更をサーバーに保存するためのコードを記述する場所です。
http://jsbin.com/OLIziRe/14/edit
この例でsave
は、値が異なる場合にログに記録されます。これには、フォームが pristineに設定されている場合が含まれます。以前の値はフォームがリセットされる前の値になり、新しい値は になりますundefined
。
私はこの振る舞いを望んでいません。変更がある場合にのみメッセージをログに記録したいsave
- フォームがリセットされた場合、「以前の値」は存在しないはずです。
私が思いつく唯一の解決策は、ビューを再レンダリングしてコントローラーを再初期化するためにいくつかのトリックを行うことです。これにより、以前の状態がすべて失われます。
http://jsbin.com/OLIziRe/12/edit
これを行うAngularJSの方法は何でしょうか?