私はDOJO JsonRestStoreを使用しています。オブジェクトのフィールドを変更します。dojoデータストア/ JsonRestStoreから取得したオブジェクトの更新/変更
は何のデータストアとRESTサービスに戻って修正されたオブジェクトを永続化するための適切な手順でしょうか?
更新:それは問題の一部ではなかったとしてグリッドについて削除。情報。
私はDOJO JsonRestStoreを使用しています。オブジェクトのフィールドを変更します。dojoデータストア/ JsonRestStoreから取得したオブジェクトの更新/変更
は何のデータストアとRESTサービスに戻って修正されたオブジェクトを永続化するための適切な手順でしょうか?
更新:それは問題の一部ではなかったとしてグリッドについて削除。情報。
は、どうやら私は戻された項目は、データストアと同期されることを想定していました。それはそうではなく、手動で更新する必要があります:
store.setValue(item, field, value);
私はJPAマージに相当するコマンドも期待していました。あなたが前にオブジェクトを上書きした場合:
store.newItem(updatedVersionOfItem);
、アイテムが同じ一意のIDを持っている、それがマージに似た古い項目が上書きされます。そこにあれば
誰もがフィールドごとstore.setValue()を呼び出します項目についてゲッターとセッターを作成する工場のいくつかの並べ替えを知っていますか?私は建築のそのきちんとした作品として、私自身を作成することを検討しています
var wrappedItem = itemWrapperFactory.createWrapper(item, store);
...
//Some where in createWrapper(...), this is just the concept
for (var itemField in itemFieldList)
this.__defineGetter__(itemField[index] , function(val){
store.setValue(item, itemField[index], val);
});
:
私はそれは、次のようなものになるだろうと想像します。
通常、store.saveは()に十分でなければなりません...ない場合、それはあなたがあなたのグリッドと店舗間の問題があることを意味します。
おそらく間違っていると思われます。私はfetchitembyid()を使ってアイテムを取り出し、store.save()という名前のアイテムを修正しました。 isDirty()はオブジェクトを変更した後はfalseです。 – Greg
あなたは...あなたのJRSこと、および編集可能としてあなたの細胞を設定しdojox.data.JsonRestoreとdojox.grid.DataGrid、セットアップをしている場合、グリッドのプロパティ「ストア」を使用している場合、変更は間違いなくに反映されるべきであるにグリッドからプロパティを更新するときのストア...あなたは何か他のものを持っていますか? – PEM
右。私はグリッドからそれらを更新していない、私はちょうど私がグリッドから得た情報を使用してそれらを取得していた。それが私の問題の一つの原因でした。 – Greg