ExtJS中Panel绑定Datastore后数据不显示问题求助
解决ExtJS Panel绑定Store后数据不显示的问题
嘿,我帮你捋捋这个数据不显示的问题,先看你代码里的几个明显坑:
1. Model定义存在语法错误
你写的Model代码开头缺了单引号,这会直接导致Model加载失败,Store依赖的Model出问题,数据自然没法正常绑定:
// 错误写法 Ext.define(model.sa.saModel', { ... }); // 修正后 Ext.define('model.sa.saModel', { extend: 'model.common.Base', fields: [ {name: 'address3', type: 'string'} ] });
另外注意字段数组里最后一个字段后面的逗号尽量去掉,避免老版本JavaScript的语法兼容性问题。
2. Store的数据格式建议调整
你当前用的是二维数组格式的data,虽然单个字段场景下理论上能匹配,但更稳妥且可读性更高的是用对象数组,直接对应Model里的字段名:
Ext.define('store.sa.saDataStore', { extend: 'Ext.data.Store', storeId: 'saDatastore', requires: ['model.sa.saModel'], model: 'model.sa.saModel', data : [ {address3: 'Address3'} ] });
3. Panel缺少数据展示的具体组件
单纯的Ext.Panel本身不会自动渲染Store的数据,你需要在Panel内部添加能展示数据的子组件(比如Grid、DataView等),并正确配置Store和展示规则。举个完整的Panel示例:
Ext.define('view.sa.saDS', { extend: 'Ext.Panel', xtype: 'saDS', requires: [ 'store.sa.saDataStore', 'model.sa.saModel' ], title: '数据展示面板', layout: 'fit', // 让子组件填满Panel items: [{ xtype: 'grid', store: 'saDatastore', // 对应Store的storeId columns: [ {text: '地址信息', dataIndex: 'address3', flex: 1} ] }] });
最后建议你先打开浏览器控制台(F12)看看有没有语法报错,这类问题大多是语法错误或者组件配置不完整导致的,先把Model的语法问题修好,再逐步验证Store和Panel的配置。
内容的提问来源于stack exchange,提问作者sandy
相关产品推荐
相关产品推荐

