変更をサーバーに自動的に同期したい。現在scope.$onEval
、diff-match-patchを使用して、アプリケーションの状態をJSONでシリアル化し、以前にシリアル化されたコピーと比較することで、ハンドラーの変更を検出しています。
AngularJSには、これをより効率的にするための何かが組み込まれているのではないかと思いました。
変更をサーバーに自動的に同期したい。現在scope.$onEval
、diff-match-patchを使用して、アプリケーションの状態をJSONでシリアル化し、以前にシリアル化されたコピーと比較することで、ハンドラーの変更を検出しています。
AngularJSには、これをより効率的にするための何かが組み込まれているのではないかと思いました。
単一の代わりに複数の$watch$onEval
を使用できます($watch は文字列/式の代わりに関数を引数として取ることができ、バージョン >=0.10.0 では、監視された値はangular.Object.equalsを使用して比較されることに注意してください) )。それ以外に、これに役立つ AngularJS メカニズムは知りません。
私は似たようなことに取り組んでいます。@psyho が提案したように、 $watchを使用して変更をキャッチしています。
scope.$watch("dataObject",function (newValue, oldValue) {
//calculate changes
//send the changes to the server
});
次に、 jquery diffのロジックを使用して、どのような変更が行われたかを計算します。