问题描述
我有一个使用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 (将#修改为@)