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