我想在ExtJS中使用一个非常简单的组合框,但我很惊讶地发现似乎我必须通过使用商店来复杂化。
我有一个数据数组:
var states = [
{"name":"Alabama"},
{"name":"Alaska"}
]
我创建了我的模型' State'链接到'名称'字段,然后我创建链接到模型和数据数组的商店。
Ext.regModel('State', {
fields: [
{type: 'string', name: 'name'}
]
});
var store1 = Ext.create('Ext.data.Store', {
model: 'State',
data: states
});
现在我创建我的组合,作为我面板中的一个字段:
var f = Ext.create('Ext.form.Panel', {
items: [
{
fieldLabel: 'hi there',
xtype: 'combobox',
name: 'XXXX',
store:store1,
maxLength: 64,
allowBlank: false
}
]
})
没有什么能告诉我我做错了什么,但我得到了一个' Uncaught TypeError:无法读取属性' indexOf'当我尝试打开组合时,未定义' 。
我的小提琴在这里:
http://jsfiddle.net/sr61tpmd/1/
除了我的问题之外,我可以在ExtjS中呈现组合框的最简单方法是什么?
答案 0 :(得分:1)
只要您只想要一个具有相同值的组合框,就可以将商店定义为数组。
xtype:'combo',
store:['Alabama','Arkansas',...]
如果显示的文本与值不同,则需要真正的extjs商店。您可以在ext文档中看到一个有效的示例(实际上也使用美国状态):http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.ComboBox