未动态添加到组合框的值

时间:2015-05-21 11:07:24

标签: extjs dynamic combobox add store

我有一个组合框,其值需要通过我通过AJAX调用检索的json格式化字符串填充。

这是我检索过的字符串(存储在data

{
    "a2m":
    [
        "a2mMeeting",
        "sugar"
    ]
}

组合框必须包含a2m(这是截至目前字符串中唯一的名称)

这是我一直在尝试的事情:

方法1:

this.initAjaxCall = Ext.Ajax.request({
        url : 'indigo/restproxy/get/v1/applications/list',
        method:'GET',
        scope : this,
        success : function(result, request) {
            var data = Ext.decode(result.responseText);
            Object.keys(data).forEach(function(key) {
                console.log(key);
                Ext.getCmp('appCombo').getStore().add({appName : key});
            })
        }
});

this.appcombo = Ext.create('Ext.form.field.ComboBox', {
        id : 'appCombo',
        store: this.appStore
});

this.appStore = Ext.create('Ext.data.Store', {
    fields : [
    {
        name : 'appName',
        type : 'string'
    }
    ]
});

方法2:

this.appStore = Ext.create('Ext.data.Store', {
        fields: ['appName'],
        proxy: {
            type: 'ajax',
            url: 'indigo/restproxy/get/v1/applications/list',
            method : 'GET'
        },
        listeners: {
            load: function(store, records, successful, eOpts ) {
                store.insert(0, {
                    'appName' : 'yellow' //Trying to populate randomly using this method.
                })
            }
        }
    })


this.appcombo = Ext.create('Ext.form.field.ComboBox', {
    id : 'appCombo',
    store: this.appStore
});

在这两种情况下,组合框都没有加载任何值,我无法在下拉菜单中看到任何值。

编辑1:当我在添加一个元素后在控制台中打印store.getCount()时,该值显示为1(通过添加两个元素进行检查,它显示为2)。这意味着值正在添加到商店但未显示在组合框下拉菜单中。请建议如何解决此问题。

SOLUTION:
事实证明,解决方案是添加一个语句queryMode:' local'。我不明白为什么这会造成问题。任何愿意阐明这一点的人都欢迎这样做。

1 个答案:

答案 0 :(得分:-1)

正如您所证明的那样,商店正在填充。但是,您尚未在组合框上设置显示字段。

this.appcombo = Ext.create('Ext.form.field.ComboBox', {
    id : 'appCombo',
    store: this.appStore,
    displayField: 'appName'
});
  

displayField:要绑定到此ComboBox的基础数据字段名称。默认为:'text'

     

valueField:要绑定到此ComboBox的基础数据值名称。默认值与displayField config的值匹配。