Как использовать метод setOptions для поля select с магазином - PullRequest
1 голос
/ 03 октября 2011

Я могу использовать метод setOptions, чтобы успешно указать параметры поля выбора следующим образом:

setOptions(
[   {text: 'First Option',  value: 'first'},
{text: 'Second Option', value: 'second'},
{text: 'Third Option',  value: 'third'}
])

Однако вместо этого я бы хотел, чтобы setOptions работал с загруженным хранилищем данных, а не жестко кодировал массив текста / значений, как описано выше.

В магазине есть один тип предмета - «транспортное средство» и ответ json от сервера, который его загружает, имеет вид {'vehicle': 'mercedes'}, {'vehicle' 'jaguar'} (игнорировать, если я у меня неправильный синтаксис json, я набираю его из памяти. И, наконец, мне было бы хорошо, если бы поле значения было таким же, как текстовое поле для setOptions.

Однако я поставлен в тупик, как этого добиться. Большое спасибо всем, кто может мне помочь.

Ответы [ 3 ]

1 голос
/ 10 октября 2013

Вы можете циклически перемещаться по хранилищу и помещать данные в массив, а затем использовать массив в качестве аргумента для setOptions.

1 голос
/ 22 апреля 2014

Добавить к ответу боевой машины ... По вашему мнению:

                {
                    xtype: 'selectfield',
                    id: 'NameId',
                    label: 'Name',
                    labelWrap: true,
                    placeHolder: 'name'
                },

Контроллер или функция инициализации по вашему мнению:

initialize: function(){

    var me = this;
    me.callParent(arguments);

    var sto= Ext.getStore('Persons');
    sto.load();

    var options = [];

    sto.each(function(record){
        options.push({
            value: record.get('displayname'),
            text: record.get('displayname')
        });
    });

    var box = Ext.ComponentQuery.query('#NameId')[0];

    box.setOptions(options);
},
1 голос
/ 03 октября 2011

Используйте это:

{         id: 'theSelect',
        name: 'vechicleSelect',
       xtype: 'selectfield',
       store: storeObejct,
displayField: 'vehicle',
  valueField: 'vehicle'
}

Читать весь API здесь Sencha Touch selectfield

...