我正在使用DOJO JsonRestStore。我修改對象中的字段。更新/修改從dojo數據存儲/ JsonRestStore檢索的對象
將修改的對象持久化回數據存儲和REST服務的正確過程是什麼?
更新:刪除有關網格的信息,因爲它不是問題的一部分。
我正在使用DOJO JsonRestStore。我修改對象中的字段。更新/修改從dojo數據存儲/ JsonRestStore檢索的對象
將修改的對象持久化回數據存儲和REST服務的正確過程是什麼?
更新:刪除有關網格的信息,因爲它不是問題的一部分。
顯然我假設返回的項目將與數據存儲同步。它不會出現,必須手動更新使用:
store.setValue(item, field, value);
我也希望命令相當於JPA合併。如果覆蓋現有對象:
store.newItem(updatedVersionOfItem);
和項目具有相同的唯一ID,它將覆蓋類似於合併舊項目。
有誰知道是否有某種工廠會爲每個字段調用store.setValue()的項目創建getter和setter?
我想這將是類似以下內容:
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 2012-03-22 20:48:46
如果您使用的是dojox.data.JsonRestore和dojox.grid.DataGrid,如果您已經將網格屬性「store」設置爲您的JRS,並將您的單元格設置爲可編輯的,那麼應該將變化明確地反映到當你從網格更新屬性時,商店...你還有其他東西嗎? – PEM 2012-03-23 08:41:39
沒錯。我沒有從網格更新它們,我只是使用從網格獲得的信息檢索它們。這是我的問題的一個來源。 – Greg 2012-03-25 19:01:44