0

リセットしたいフォームがあります。$setPristineAngular でこのメソッドを使用すると、ある程度はうまくいきます。

ただし、次の孤立したケースを見ると、リセット ボタンを押してフォームをリセットすると、saveメッセージがコンソールに記録されることがわかります。これは、フォームに加えられた変更をサーバーに保存するためのコードを記述する場所です。

http://jsbin.com/OLIziRe/14/edit

この例でsaveは、値が異なる場合にログに記録されます。これには、フォームが pristineに設定されている場合が含まれます。以前の値はフォームがリセットされる前の値になり、新しい値は になりますundefined

私はこの振る舞いを望んでいません。変更がある場合にのみメッセージをログに記録したいsave- フォームがリセットされた場合、「以前の値」は存在しないはずです。

私が思いつく唯一の解決策は、ビューを再レンダリングしてコントローラーを再初期化するためにいくつかのトリックを行うことです。これにより、以前の状態がすべて失われます。

http://jsbin.com/OLIziRe/12/edit

これを行うAngularJSの方法は何でしょうか?

4

1 に答える 1