试图让一个基本的组合在ExtJS中工作

时间:2014-09-02 13:21:08

标签: extjs extjs4

我想在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中呈现组合框的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

只要您只想要一个具有相同值的组合框,就可以将商店定义为数组。

xtype:'combo',
store:['Alabama','Arkansas',...]

如果显示的文本与值不同,则需要真正的extjs商店。您可以在ext文档中看到一个有效的示例(实际上也使用美国状态):http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.ComboBox