2015-09-02 5 views
0

Привет У меня есть json с массивом значений, и я хочу установить эти значения в качестве параметров для поля select. Не уверен, как продолжить этот сценарий. Любая помощь приветствуется.Selecfield устанавливает параметры из массива

Ниже мой код JSON и функция Javascript, которая возвращает xtype selectfeild

  var json= { 
       "metric": { 
        "areaInput": ["um", "mm", "cm", "m", "dm", "km"], 
        "areaResult": ["um", "mm", "cm", "m", "ha", "dm", "km"], 
        "volumeInput": ["mm", "cm", "m", "km"], 
        "volumeResult": ["ml", "tsp", "tbs", "l", "mm", "cm", "m", "km"], 
        "weight": ["g", "kg", "mg", "t"] 
}, 
     "imperial": { 
      "areaInput": ["in", "ft", "yd", "fur", "mi", "nmi"], 
      "areaResult": ["in", "ft", "yd", "mi", "nmi", "acre"], 
      "volumeInput": ["in", "ft", "yd", "mi"], 
      "volumeResult": ["in", "oz", "fl.oz", "pt", "qt", "gal", "tbs", "tsp", "cups", "ft", "yd", "mi"], 
      "weight": ["oz", "lb", "t", "oz.tr.", "grains"] 
     } 
       }, 


      selectBoxUnit: function(eachInput){ 
        var options = []; 


     for (h in json.metric) { 
      options.push({text: json.metric[h], value: h}); 
     } 
      Ext.getCmp('myselect').add(options); 
        return { 
         xtype: 'selectfield', 
         usePicker : false, 
         itemId: eachInput.itemId+"selectfield", 
         name: eachInput.itemId, 
         id:'myselect', 
         flex: 1, 
         options: options, 
         listeners: { 
          change: function (field, value) { 
            field.setOptions([{ 
             value: "newvalue", 
             text: "My new value" 
            }], true); 
           } 
          } 
         } 

        }; 

ответ

0

Я совершенно новой для Сенча Touch, 2. Я пишу этот пример для вас. Может быть, это поможет вам. Вы должны установить хранилище данных для selectfield. После этого вы сможете легко добавить элементы к этому datastore и параметры будут созданы.

Ext.define('OptionModel', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: [ 
      {name: 'text', type: 'string'}, 
      {name: 'value', type: 'string'} 
     ] 
    } 
}); 

var optionsStore = Ext.create('Ext.data.Store', { 
    model: 'OptionModel' 
}); 

Ext.application({ 
    name: 'Test', 

    launch: function() { 
     Ext.Viewport.add({ 
      xtype: 'panel', 
      fullscreen: true, 
      items: [ 
       { 
        xtype: 'fieldset', 
        title: 'Select', 
        items: [ 
         { 
          xtype: 'selectfield', 
          label: 'Choose item', 
          id: 'selectItemId', 
          store: optionsStore 
         } 
        ] 
       }, 
       { 
        xtype: 'button', 
        text: 'Add new item', 
        listeners: { 
         tap: function() { 
          var optionValueText = "Item " + optionsStore.getCount(); 

          // here is the magic 
          optionsStore.add({ 
           text: optionValueText, 
           value: 'somevalue' 
          }); 

          // here we set new added item 
          // to be selected (active into select) 
          Ext.ComponentQuery.query('#selectItemId')[0].setValue(optionValueText); 
         } 
        } 
       } 
      ] 
     }); 
    } 
}); 
Смежные вопросы