ExtJS组合元素未显示

时间:2014-09-02 14:32:14

标签: extjs

我的组合元素没有显示。我正在使用本博客中描述的内联商店:

http://skirtlesden.com/articles/extjs-comboboxes-part-2

items: [
           {
                xtype: 'combobox',    
                store: {
                    fields: ['name'],
                    data: [
                        {name: 'Red'},
                        {name: 'Yellow'},
                        {name: 'Green'}
                    ]},
                maxLength: 64

            }
        ]

但我看到的只是空的一个像素高的空间,元素应该呈现。

小提琴在这里:

http://jsfiddle.net/sr61tpmd/4/

2 个答案:

答案 0 :(得分:1)

displayField:'name'添加到您的combo配置中,它应该如下所示......

{
    xtype: 'combobox',    
    displayField:'name', //the name of the field you want to display on the combo
    store: {
        fields: ['name'],
        data: [
            {name: 'Red'},
            {name: 'Yellow'},
            {name: 'Green'}
        ]},
    maxLength: 64
}

您可能也想设置valueField,但我会留给您

答案 1 :(得分:0)

您没有使用该博客中描述的"内联商店"。

该博客中描述的"内联商店"看起来像这样:

items: [
       {
            xtype: 'combobox',    
            store: [
                    'Red',
                    'Yellow',
                    'Green'
                ],
            maxLength: 64

        }
    ]

或者像这样:

items: [
       {
            xtype: 'combobox',    
            store: Ext.create('Ext.data.Store', { 
                fields: ['name'],
                data: [
                    {name: 'Red'},
                    {name: 'Yellow'},
                    {name: 'Green'}    ] 
            }),
            maxLength: 64

        }
    ]

但我不得不承认ExtJS开发人员在选择不允许您尝试的那种声明时并没有考虑到这一点。但是为了允许这个,商店需要一个xtype或类似的配置选项,因为你定义它时,不清楚你选择哪种商店--Ajax Store,JsonP商店,Direct Store,Store?

但Ext中没有这样的配置选项;所以必须创建或定义商店。