私は通常、変更されたプロパティだけでオブジェクトを構築し、そのオブジェクトを送信します。私はそれを編集する前に元のオブジェクトのコピーを作成し、それを使って比較しますが、これを簡単に$ dirtyに適合させることができます。これらの線に沿って何か:
function getUpdateObject(orig, current) {
varChanges = {};
for (var prop in orig) {
if (prop.indexOf("$") != 0 && orig[prop] !== current[prop]) {
varChanges[prop] = current[prop];
}
}
return varChanges ;
};
その後、私の更新コードは、主キーは、私は、そのオブジェクトへの作業とすることを送信していたものからは何でも割り当てて、ちょうど私の変更で新しいオブジェクトを取得するには、この関数を呼び出しますサーバ。私はあなたのバックエンドが何であるか分かりませんが、これを動作させるにはhttpパッチを行う必要があります。したがって、このような何か:
function save() {
var changes = getUpdateObject(vm.orig, vm.current)
changes.id = vm.orig.id
$http.patch("http:/serviceURI.com (" + changes.id + ")", changes).then(...)
}
私はODATAを使用するアプリケーションのうち、このコードを引っ張り、それをこの答えのためのビットを変更しますが、このコードのすべては、私は私のODATAの相互作用のすべてのために使用したサービスに存在します。
マイクさんありがとうございました。あなたの説明に従ってコードが変更されました。それは働いた.. :)あなたに感謝!! – saurav
素晴らしい! upvoteと答えを受け入れることを自由に感じてください。 :) –