[英]ExtJs 6.02 Store with configs remoteSort and groupField makes the store to auto load
所以问题是,如果您使用
远程排序
和
groupField
商店会以自动加载的方式触发对服务器的请求。
例如
Ext.create('Ext.data.Store',{
remoteSort: true,
groupField: 'someProperty',
model: 'MyApp.model.SomeModel',
proxy: {
type: 'ajax',
api: {
read: 'myRestUrl'
},
reader: {
type: 'json',
rootProperty: 'data'
}
}
});
上面触发了一个请求
myRestUrl
它不应该。
使用ExtJs 6.02
因此,避免与
remoteSort:正确
和
groupField
要自动加载,我覆盖了'Ext.data.AbstractStore'
上'Ext.data.AbstractStore'
group
方法
/**
* Groups data inside the store.
* @param {String/Object} grouper Either a string name of one of the fields in this Store's
* configured {@link Ext.data.Model Model}, or an object, or a {@link Ext.util.Grouper grouper} configuration object.
* @param {String} [direction] The overall direction to group the data by. Defaults to the value of {@link #groupDir}.
*/
group: function(grouper, direction) {
var me = this,
sorters = me.getSorters(false),
change = grouper || (sorters && sorters.length)
if (grouper && typeof grouper === 'string') {
grouper = {
property: grouper,
direction: direction || me.getGroupDir()
};
}
me.settingGroups = true;
me.getData().setGrouper(grouper);
delete me.settingGroups;
if (change) {
if (me.getRemoteSort()) {
/**
* when grouping a store only if the store is loaded trigger a load otherwise
* the store would be autoloading.
*/
if(me.isLoaded()) {
me.load({
scope: me,
callback: me.fireGroupChange
});
}
} else {
me.fireEvent('datachanged', me);
me.fireEvent('refresh', me);
me.fireGroupChange();
}
}
// groupchange event must fire when group is cleared.
// The Grouping feature forces a view refresh when changed to a null grouper
else {
me.fireGroupChange();
}
},
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.