在extjs中如何更改ExtdataTreeStore远程请求回来的数据
可以通过重写Ext.data.TreeStore的load方法,在数据请求回来后修改数据。具体操作如下:
1.创建一个继承自Ext.data.TreeStore的子类,并重写load方法:
Ext.define('MyTreeStore', {
extend: 'Ext.data.TreeStore',
load: function(options) {
var me = this;
options = options || {};
options.callback = function(records, operation, success) {
if (success) {
me.modifyData(records);
}
Ext.callback(options.callback, options.scope || me, [records, operation, success]);
};
me.callParent([options]);
},
modifyData: function(records) {
// TODO: modify data here
}
});
2.在modifyData方法中修改数据,例如移除某个节点:
modifyData: function(records) {
var rootNode = this.getRootNode();
rootNode.cascadeBy(function(node) {
if (node.get('id') === 'nodeToRemove') {
node.remove();
}
});
}
3.使用自定义的MyTreeStore来加载数据:
var store = Ext.create('MyTreeStore', {
proxy: {
type: 'ajax',
url: 'data.json'
}
});
store.load();
原文地址: https://www.cveoy.top/t/topic/ZZG 著作权归作者所有。请勿转载和采集!