1、状态保存服务
为了实现有状态表格,首选我们要提供状态保存服务,ExtJs已经提供了状态管理:Ext.state.Provider,为了让我们的代码更加优雅,我扩展了Provider。主要提供了布局配置的加载、清空、保存和获取服务。代码如下:
Ext.define('Pds.svc.UISettingsSvc', {
extend: 'Ext.state.Provider',
singleton: true,
alternateClassName: 'UISettingsSvc',
// 界面配置
settings: {
load: serviceUrl('settings/load'),
save: serviceUrl('settings/save'),
clear: serviceUrl('settings/clear')
},
/**
* 加载配置,一般要界面首次加载时调用
*/
loadState: function() {
var me = this;
Cxt.Utils.ajax({
request: {
async: false,
url: me.settings.load
},
success: function(ret) {
if (!ret.data) {
ret.state = [];
} else {
for (var field in ret.data) {
ret.data[field] = me.decodeValue(ret.data[field]);
}
me.state = ret.data;
}
}
});