模型/record.set属性,值不触发脏/修改记录

问题描述

我有一个使用ExtJS 6.0.2构建的Web应用程序。 Web应用程序中有一部分,我可以大规模更新商店中的所有记录/模型。

我执行以下操作:

for(var i = 0 ; i < store.count() ; i++{
    var model = store.getAt(i);
    model.set('property',value);
}

console.log('dirty records check = ' + store.getModifiedRecords().length);

store.sync({
    callback: function(){....}
});

但是,getModifiedRecords().length仅返回零,而store.sync()不会触发。

这是我的商店配置:

Ext.define('App.store.StoreName',{
    extend: 'Ext.data.Store',requires: [
        'App.model.model_name','Ext.data.proxy.Ajax','Ext.data.reader.Json','Ext.data.writer.Json'
    ],constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            storeId: 'StoreID',batchUpdateMode: 'complete',model: 'App.model.model_name',proxy: {
                type: 'ajax',batchActions: false,api: {
                    create: 'data/folder/create.PHP',read: 'data/folder/read.PHP',update: 'data/folder/update.PHP'
                },url: '',reader: {
                    type: 'json',keepRawData: true,messageProperty: 'message',rootProperty: 'data'
                },writer: {
                    type: 'json',writeallFields: true,encode: true,rootProperty: 'data'
                }
            }
        },cfg)]);
    }
});

老实说,这与其他使用相同流程的商店之间并没有太大区别,另外还有2个商店我通过编程方式设置了记录值并进行了同步,而这只是{{1} }或dirty的值不会更新,并会阻止同步。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)