先来看例子:
Ext.define('schoolModel', { extend: 'Ext.data.Model', fields: [{ name: 'id', type: 'string' }, { name: 'name', type: 'string' }] }); var schoolstore = Ext.create('Ext.data.Store', { model: 'schoolModel', proxy: { type: 'ajax', url: C_ROOT + "Base/Student/GetSchoolList", reader: { type: 'json', root: 'Record' } }, autoLoad: true }); var schoolCombo = Ext.create('Ext.form.field.ComboBox', { valueField: "id", displayField: 'name', name: 'schoolid', store: schoolstore, colspan: 1, fieldLabel: '所属校区', queryMode: "local", forceSelection: true,//只能选,不能输入文本 typeAhead: true//如果匹配到已知的值将填充和自动选择键入的文本其余部分 });
看了官网的例子,模仿了一下,数据怎么都显示不出来,后来发现原来是数据格式问题,当通过远程获取数据时,需要store需要配置reader项,root属性指示从服务端获取到的json串里面数组对应的属性名,比如以上示例中获取到的数据格式为:{‘Record’:[{‘id’:‘01’,‘name’:‘湖东’},{‘id’:‘02’,‘name’:‘湖西’}]}