Видимо, я предположил, что возвращенный элемент будет синхронизирован с хранилищем данных. Она не появляется, так и должны быть обновлены вручную с помощью:
store.setValue(item, field, value);
Я также надеялся на команду, эквивалентную JPA слияния. Если вы перезаписать предшествующий объект:
store.newItem(updatedVersionOfItem);
и элемент имеет тот же уникальный идентификатор, он будет перезаписывать старый предмет, похожий на слияние.
Кто-нибудь знает, есть ли какая-нибудь фабрика, которая создаст геттеры и сеттеры для элемента, который вызовет 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);
});
Я бы тебе мой собственный, как сво аккуратный кусок архитектуры.
Если вы используете dojox.data.JsonRestore и dojox.grid.DataGrid, если вы настроили свойство «хранилище» сетки как ваш JRS и задали свои ячейки как редактируемые ... изменения СЛЕДУЕТ определенно отразиться на магазин, когда вы обновляете свойства из сетки ... У вас есть что-то еще между ними? – PEM
Справа. Я не обновлял их из сетки, я просто извлекал их, используя информацию, полученную из сетки. Это был один из моих проблем. – Greg