Extjs6 treepanel store无法加载请求后台URL数据bug
2017-09-22 10:54
609 查看
使用mvc(或者说mvvm吧)方式使用Extjs6框架,单独写的treestore配置给treepanel无法正常远程加载数据.
然后搜索到这样一篇博文:
https://www.oschina.net/question/189633_2142590
这位博主找到了bug出处---treepanel源代码中的applyStore()方法自动把treestore的proxy覆盖为了memory类型,所以proxy无法远程加载数据,相关代码如下:
Ext.define('Zlf.overrides.tree.Panel', {
override: 'Ext.tree.Panel',
applyStore: function(store) {
// private
// Note that this is not a config system applier. store is not yet a config.
// It just does the job of an applier and converts a config object to the true value
// for the setter to use.
var me = this;
if (Ext.isString(store)) {
store = me.store = Ext.StoreMgr.lookup(store);
} else if (!store || !store.isStore) {
store = Ext.apply({
type: 'tree'
// proxy: 'memory'
}, store);
if (me.root) {
store.root = me.root;
}
if (me.fields) {
store.fields = me.fields;
} else if (me.model) {
store.model = me.model;
}
if (me.folderSort) {
store.folderSort = me.folderSort;
}
store = me.store = Ext.StoreMgr.lookup(store);
} else if (me.root) {
store = me.store = Ext.data.StoreManager.lookup(store);
store.setRoot(me.root);
if (me.folderSort !== undefined) {
store.folderSort = me.folderSort;
store.sort();
}
}
return store;
}
});
没错,就仅仅把
然后搜索到这样一篇博文:
https://www.oschina.net/question/189633_2142590
这位博主找到了bug出处---treepanel源代码中的applyStore()方法自动把treestore的proxy覆盖为了memory类型,所以proxy无法远程加载数据,相关代码如下:
Ext.define('Zlf.overrides.tree.Panel', {
override: 'Ext.tree.Panel',
applyStore: function(store) {
// private
// Note that this is not a config system applier. store is not yet a config.
// It just does the job of an applier and converts a config object to the true value
// for the setter to use.
var me = this;
if (Ext.isString(store)) {
store = me.store = Ext.StoreMgr.lookup(store);
} else if (!store || !store.isStore) {
store = Ext.apply({
type: 'tree'
// proxy: 'memory'
}, store);
if (me.root) {
store.root = me.root;
}
if (me.fields) {
store.fields = me.fields;
} else if (me.model) {
store.model = me.model;
}
if (me.folderSort) {
store.folderSort = me.folderSort;
}
store = me.store = Ext.StoreMgr.lookup(store);
} else if (me.root) {
store = me.store = Ext.data.StoreManager.lookup(store);
store.setRoot(me.root);
if (me.folderSort !== undefined) {
store.folderSort = me.folderSort;
store.sort();
}
}
return store;
}
});
没错,就仅仅把
// proxy: 'memory' 这一行去掉就好了,很简单不是吗?
相关文章推荐
- 关于ligerUI中ligerTree代码中的一个bug,造成该控件无法通过url的POST方式加载数据
- ExtJS 4.2 树形结构请求后台数据无法展示子节点,而是没点击一次请求一次数据,无限请求加载所有的父节点元素
- extjs的treepanel 后台并没有按照规定的结构返回数据时解决方案
- sencha touch2 在control层给panel应用XTemplate模版,并加载store中的数据
- [Extjs6]treepanel内数据的过滤实现
- vue 使用 axios 发 post 请求,后台无法接收到数据
- ztree实现异步加载(点击节点,请求后台数据,添加数据到对应节点)
- ExtJs TreePanel使用TreeLoader在IE下无法正常加载显示的解决方法
- 使用easyUI的treegrid的时候,出现后台返回数据为空时,treegrid加载了前面请求到的数据到页面上的问题
- asp.net:easyui tree控件加载url数据
- Extjs4 treePanel异步加载菜单(后台从数据库读取)
- ExtJs TreePanel 不能加载ashx数据的解决办法
- ext TreePanel 一次递归加载数据及异步加载数据(点子节点加载数据)
- easy ui tree json 数据 无法加载的问题
- Ext中JsonStore重新设置url然后加载数据的方法
- 后台请求url数据
- Extjs6 treepanel 自动靠右bug
- http post请求时,数据过多,无法提交,bug解决
- extjs TreePanel 加载数据后默认选中第一个孩子并展开子级
- 当图片URL为404时,使用Glide加载图片,修改用户头像无法显示最新图片bug