前端之家收集整理的这篇文章主要介绍了
ExtJs4 Store加载数据的怪异问题,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//这是我的基础BaseStore
Ext.define("Base.store.BaseStore",{
extend: "Ext.data.Store",proxy: {
type: 'ajax',reader: {
type: 'json',root: 'data',idProperty: "id",successProperty: "success",messageProperty: "msg",totalProperty: "total"
}
},sorters: [{
property: 'id',direction: 'DESC'
}]
});
//第一个model
Ext.define("Script.model.system.SystemMenuModel",{
extend: 'Ext.data.Model',fields: ["id","name","icon1","icon2","fatherId","modelClass","children"]
});
//第二个model
Ext.define("Script.model.system.SystemRoleModel","roleName"]
});
//俩个sotre
Ext.define("Script.store.system.SystemMenuStore",{
extend: "Base.store.BaseStore",model: 'Script.model.system.SystemMenuModel'
});
Ext.define("Script.store.system.SystemRoleStore",model: 'Script.model.system.SystemRoleModel'
});
Ext.define("Script.view.system.SystemRoleGird",{
extend: 'Ext.grid.Panel',store: null,columns: [
{ text: 'id',dataIndex: 'id'},{ text: 'roleName',dataIndex: 'roleName',flex: 1 }
]
});
//问题的关键就在这了,如果不创建store1 ,则表格可以正确绑定数据,如果create了sotre1就不能绑定数据,但数据可以从服务器端正确返回都没问题 就是帮不上,百思不得其解
var store1 = Ext.create('Script.store.system.SystemMenuStore');
var store2 = Ext.create("Script.store.system.SystemRoleStore");
store2.proxy.url = "systemRoleController.do?method=queryRoleList";
Ext.create("Script.view.system.SystemRoleGird",{
store: store2,renderTo : Ext.getBody()
});
store2.load();
//但是如果在SystemMenuStore与SystemRoleStore中定义自己的proxy也就是不用继承BaseStore的proxy就好使 真不知道为什么了