Создать хранилище данных из массива и bindStore в Combobox Extjs 4

У меня проблема с динамическим заполнением поля со списком ArrayStore.

В контроллере: у меня есть StatusArray: ["Active", "Inactive", "Closed"], и я создал магазин, как показано ниже

var test = Ext.create('Ext.data.ArrayStore', {
            fields: [
                { name: "Status" }
            ],
            data: StatusArray
        });

а затем я заполняю комбинированный список с этим магазином

Ext.ComponentQuery.query('#statusId')[0].bindStore(test);

Это работает, но выпадающий список получает только первую букву каждого значения в StatusArray, такого как "A", "I", "C".

Моя форма Просмотр с помощью выпадающего списка:

items: [{
        xtype: 'form', itemId: 'eventForm', bodyPadding: 10, anchor: '100%',
        items: [{ xtype: 'combobox', anchor: '100%', displayField: 'Status', name: 'Status', valueField: 'Status', typeAhead: true, queryMode: 'local', triggerAction: 'all', fieldLabel: ' Status ', emptyText: 'Select Status', tooltip: 'Select Status', selectOnFocus: true, itemId: 'statusId' },
            { xtype: 'button', itemId: 'submitButton', text: 'Submit' }
        ]
    }],

Кто-нибудь может мне помочь с этим? Спасибо!!!

1 ответ

Решение

Объект данных (statusarray) должен быть в форме массива экземпляров модели или объектов данных для локальной загрузки...

использование

StatusArray: [["Active"], ["Inactive"], ["Closed"]]

или же

StatusArray: [{"Active"}, {"Inactive"}, {"Closed"}]

Вы можете проверить пример кода ArrayStore здесь

Другие вопросы по тегам