Сообщение от potkin
|
ext-4.1 уже умеет принимать ответ с сервера
|
Угу... Только, вот,
Ext.data.proxy.Proxy.onBatchComplete
onBatchComplete: function(batchOptions, batch) {
var scope = batchOptions.scope || this;
if (batch.hasException) {
if (Ext.isFunction(batchOptions.failure)) {
Ext.callback(batchOptions.failure, scope, [ *!* batch, batchOptions */!* ]);
}
} else if (Ext.isFunction(batchOptions.success)) {
Ext.callback(batchOptions.success, scope, [ *!* batch, batchOptions */!* ]);
}
if (Ext.isFunction(batchOptions.callback)) {
Ext.callback(batchOptions.callback, scope, [ *!* batch, batchOptions */!* ]);
}
}
и Ваша хотелка:
Сообщение от potkin
|
store.sync({
success: function ( *!* form, action */!*) {
//...
},
failure: function ( *!* form, action */!*) {
//...
}
});
|
как-то не стыкуются (ведь, насколько я понял, вы хотите скрестить ужа и ежа, сиречь - Ext.form.Panel и Ext.grid.Panel)...
Сообщение от potkin
|
Вот только записи передаются при одном условии - если были какие-то изменения
|
Ext.data.AbstractStore.sync()
sync: function(options) {
var me = this,
operations = {},
toCreate = me.getNewRecords(),
toUpdate = me.getUpdatedRecords(),
toDestroy = me.getRemovedRecords(),
needsSync = false;
if (toCreate.length > 0) {
operations.create = toCreate;
needsSync = true;
}
if (toUpdate.length > 0) {
operations.update = toUpdate;
needsSync = true;
}
if (toDestroy.length > 0) {
operations.destroy = toDestroy;
needsSync = true;
}
if ( *!* needsSync */!* && me.fireEvent('beforesync', operations) !== false) {
options = options || {};
me.proxy.batch(Ext.apply(options, {
operations: operations,
listeners: me.getBatchListeners()
}));
}
return me;
},
Сообщение от potkin
|
да и в придачу асинхронно:
1) Новые
2) Удалённые
3) Изменённые
|
Так было всегда. В 3-ке
Ext.data.Store.save() передавался
xaction, а в 4-ке -
REST
Сообщение от potkin
|
В отличии от 4.0.7 - там всё передавал одним запросом и пофигу, были изменения или нет.
|
"Не верю" (c) См. выше +
Ext.data.AbstractStore.sync() - там тот же
if ( needsSync ...