Показать сообщение отдельно
  #8 (permalink)  
Старый 07.07.2012, 11:13
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от 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 ...
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием