store.sync () не обновляет грязный флаг на false после успешной синхронизации - PullRequest
0 голосов
/ 05 октября 2018

Это мой магазин MyStore.js

Ext.define('myProject.store.MyStore', {
    config:{
        storeId:    'MyStore',
        autoLoad:   false,
        autoSync:   false,
        allowSingle: true,
        clearOnPageLoad:    true,

        model:              'abc.model.MyStoreModel',
        proxy: {
            type:   'rest',
            actionMethods: {create: 'POST', read: 'GET', update: 'POST', destroy: 'POST'},
              url:'/services/rest/MyService/myService',
            reader: {
                type: 'json',
                rootProperty:MyServiceView.elements.collection',
                successProperty : 'success'
            },
            writer:
            {
                type: 'json',
                root: 'MyServiceDataView',
                nameProperty: 'mapping',
                expandData : true
            },
            listeners: {
                exception:          function(proxy,response,operation){

                }
            }   
        }
    }
});

Это моя модель

Ext.define( 'myProject.model.MyStoreModel', {
    extend:         'Ext.data.Model',
    config:{
        idProperty:     'keyStr',
        fields:[
                {
                    name:           'keyStr',
                    type:           'string',
                },
                {
                    name:           'sId',
                    type:           'int'
                },
                {
                    name:           'dCode',
                    type:           'string'
                },
                {
                    name:           'sNumber',
                    type:           'int'
                }

            ]
    },

});

Внутри моего Controller.js у меня есть этот метод

syncMyStore: function()
    {

        var myStore = Ext.getStore('MyStore');
        var record = this.getRescordForStore(); //assume it is happening
        myStore.insert(0, record);

        if(this.isSyncRequires(myStore)) //assume this is always true
        {
            myStore.sync();
        }
    },

Теперь после успешной синхронизации запись все еще грязная: true;Как сделать это ложным?

PS: Предположим, у меня есть 10 записей в моем магазине, а затем синхронизация вызывает 10 остальных вызовов.Я хочу сделать записи грязными, которые успешно синхронизированы.Я даже в порядке с удалением записей на основе одного успешного вызова.

Обратите внимание, что при синхронизации не происходит успешное выполнение, сбой и обратный вызов.

Как выполнить действие на основе состояния ответа при выполнении синхронизации в Ext.js

...