何かが変更されるたびにモデルの自動保存をトリガーしたいと思いますが、変更が UI (つまりビュー) からのものである場合のみです。つまり、変更がデータベースからのものである場合、それを再度保存しても意味がありません。単にデータベースからのものです...
ただしfetch
、イベントsave
をトリガーすることができます (モデルの異なる状態をもたらす可能性があり、新しく作成されたモデルをもたらす可能性があるため)change
fetch
save
id
そのため、change
イベントでは、変更の原因を知りたいと思います。
たとえば、それはビューからの呼び出しでしたか?:
this.model.set("foo", "bar"); //triggers a change event as foo's value changed
それとも同期操作の結果ですか?:
model.fetch(); //triggers a change event as the model changed in the DB
model.save(); //triggers a change event as the id was empty
それらを区別する方法はありますか?
私が考えた解決策は、モデルへのビュー呼び出しをメソッドでラップしset
、setAttribute
カスタムイベントをトリガーすることchangeDueToUIAction
でしたが、これは以前に解決されたと確信しており、より良い方法であると確信しています...
それとも、何かが完全に欠けていて、問題は間違った質問をしていることですか?