バックエンドでRESTful APIを使用するJavascript Webアプリケーション(SPA)に取り組んでいます。クライアント側のデータコンテキストで、オブジェクトをモデル グラフに追加し、グラフ全体を一度にサーバーに送信したいと考えています。
次の例を想定します。
私のモデルには、それ自体がプロパティとしての配列を持つPerson
オブジェクトがPhoneNumbers
あります。ここで、編集用のPerson
from API をロードし、モデルにマップします。にいくつかの電話番号オブジェクトを追加したいとしますPhoneNumbers
。このために、たとえば{"id": 0, "number": 6536652226}
id がゼロの各数値をクライアント モデルに追加し、ユーザーが [保存] をクリックしたときにグラフ全体をサーバーに送信します。サーバーでは、ID がゼロのオブジェクト (新しいオブジェクト) を、自動インクリメントされた ID を持つデータベースに追加します。
私はチュートリアルに基づいてプロジェクトを行っています。オブジェクトをコンテキストに追加するには、次のようにします。
var items = {},
// returns the model item produced by merging json obj into context
mapJsonToContext = function (json) {
var id = mapper.getJsonId(json);
var existingItem = items[id];
items[id] = mapper.fromDto(json, existingItem); //returns the mapped obj
return items[id];
},
add = function (newObj) {
items[newObj.id()] = newObj;
}
問題は、この方法を使用すると、ID がすべてゼロであるため、クライアント側で新しく追加されたまだ保存されていないアイテムを ID で削除できないことです。
これを修正するための提案はありますか、それともまったく別のアプローチが必要ですか?