2

変更をサーバーに自動的に同期したい。現在scope.$onEval、diff-match-patchを使用して、アプリケーションの状態をJSONでシリアル化し、以前にシリアル化されたコピーと比較することで、ハンドラーの変更を検出しています。

AngularJSには、これをより効率的にするための何かが組み込まれているのではないかと思いました。

4

2 に答える 2

1

単一の代わりに複数の$watch$onEvalを使用できます($watch は文字列/式の代わりに関数を引数として取ることができ、バージョン >=0.10.0 では、監視された値はangular.Object.equalsを使用して比較されることに注意してください) )。それ以外に、これに役立つ AngularJS メカニズムは知りません。

于 2011-10-10T10:49:35.907 に答える
1

私は似たようなことに取り組んでいます。@psyho が提案したように、 $watchを使用して変更をキャッチしています。

scope.$watch("dataObject",function (newValue, oldValue) {
    //calculate changes
    //send the changes to the server
});

次に、 jquery diffのロジックを使用して、どのような変更が行われたかを計算します。

于 2011-10-19T09:40:38.957 に答える