微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决模型/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 举报,一经查实,本站将立刻删除。