组合框将不显示加载的存储数据

Combobox will not display loaded store data

本文关键字:存储 数据 加载 显示 组合      更新时间:2023-09-26

我使用的是ExtJS 4.2,当我在loadComboBox()中打印store时,项目存在,但不会出现在下拉列表中。下拉列表为空。

这是JSFiddle演示

Ext.define('ReportFieldModel', {
    extend: 'Ext.data.Model',
    fields: [{
        'name': 'name',
        'type': 'string'
    }]
});
Ext.define('ReportFieldComboStore', {
    extend: 'Ext.data.JsonStore',
    model: 'ReportFieldModel'
});
var config = {
    'type': "Summary",
    'columns': [
        "red",
        "yellow",
        "orange",
        "green",
        "blue",
        "indigo",
        "violet"]
};
function processItem(item) {
    return Ext.create('ReportFieldModel', {
        name: item
    });
}
function processItems(data) {
    var arr = [];
    if (data && data.length > 0) {
        for (var i = 0; i < data.length; i++) {
            arr.push(processItem(data[i]));
        }
    }
    return arr;
}
function loadComboBox(combo, data) {
    var store = combo.store;
    var columns = data.columns;
    var processed = processItems(columns);
    console.log(JSON.stringify(processed, undefined, 2));
    store.loadData(processed, false);
}
Ext.onReady(function () {
    var resultsPanel = Ext.create('Ext.panel.Panel', {
        title: 'Results',
        width: 200,
        height: 400,
        renderTo: Ext.getBody(),
        layout: {
            type: 'vbox',
            align: 'stretch',
            padding: 5
        },
        items: [{
            xtype: 'combo',
            itemId: 'myCombo',
            displayField: 'name',
            valueField: 'name',
            mode: 'local',
            store: Ext.getStore('ReportFieldComboStore')
        }]
    });
    loadComboBox(resultsPanel.down('#myCombo'), config);
});

配置是queryMode,而不是mode