Попытка заставить базовую комбинацию работать в ExtJS

Я хочу использовать очень простое поле со списком в ExtJS, но я был удивлен, узнав, что мне кажется, что мне нужно усложнять вещи, используя хранилище.

У меня есть один массив данных:

var states = [
    {"name":"Alabama"},
    {"name":"Alaska"}
]

Я создаю свою модель «Состояние», связанную с полем «имя», а затем я создаю свой магазин, связанный с моделью и массивом данных.

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: Cannot read property 'indexOf' of undefined' всякий раз, когда я пытаюсь открыть комбинацию.

Моя скрипка здесь:

http://jsfiddle.net/sr61tpmd/1/

Еще одно отступление от моего вопроса: как проще всего представить поле со списком в ExtjS?


person Oliver Watkins    schedule 02.09.2014    source источник
comment
Установить queryMode: 'local'   -  person Evan Trimboli    schedule 02.09.2014
comment
Я получаю Uncaught Ext.data.proxy.Server.buildUrl(): вы используете ServerProxy, но не предоставили ему URL-адрес.   -  person Oliver Watkins    schedule 02.09.2014


Ответы (1)


Пока вам нужен только поле со списком с тем же значением, что и отображаемое, вполне возможно определить хранилище как массив.

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

Настоящий магазин extjs необходим там, где отображаемый текст отличается от значения. Вы можете увидеть рабочий пример для этого (фактически также с использованием штатов США) в документации ext: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.ComboBox

person Alexander    schedule 02.09.2014
comment
Я знал, что есть простой вариант ;) - person Oliver Watkins; 02.09.2014