как обрабатывать прослушиватель для управления параметрами в sencha touch

#sencha-touch #extjs

#sencha-touch #extjs

Вопрос:

У меня есть приложение, в котором я использую элемент управления параметрами. Теперь я не знаю, как я могу обработать событие, когда параметр изменяется в управлении параметрами с помощью sencha touch. Вот приведенный ниже код, в котором есть опции. Любая помощь приветствуется.

 Ext.regModel('Contact', {
    fields: ['firstName', 'lastName']
});

var store1 = new Ext.data.JsonStore({
    model  : 'Contact',
    autoLoad : true,
           autoDestroy : true, 
    data: [
        {firstName: 'Tommy',   lastName: 'Maintz'},
        {firstName: 'Rob',     lastName: 'Dougan'},
        {firstName: 'Ed',      lastName: 'Spencer'},        
        {firstName: 'Abraham', lastName: 'Elias'},
        {firstName: 'Jay',     lastName: 'Robinson'}
    ]
});

new Ext.Application({
    launch: function() {
       var panel =  new Ext.Panel({
            fullscreen: true,
            id:'thePanel',
            layout: 'auto',
            style: 'background-color:darkblue',
            scroll:'vertical'
        });
//do this in your dynamically called function
    var list = new Ext.List({
        id :'theList',
        itemTpl : '{firstName} {lastName}',
        store: store1,
        width: '100%',
        scroll:false
    });

var stateList = new Ext.form.Select({
    label : 'State',
    name: 'state',
    widht: '100%',
    options: [
        {text: 'First Option',  value: 'first'},
        {text: 'Second Option', value: 'second'},
        {text: 'Third Option',  value: 'third'}
    ],
    autoLoad : true,
    autoDestroy : true
});

    panel.items.add(list);
    panel.items.add(stateList);
    panel.doLayout();               
    }
});
  

Ответ №1:

 var stateList = new Ext.form.Select({
 label : 'State',
 name: 'state',
 widht: '100%',
 options: [
    {text: 'First Option',  value: 'first'},
    {text: 'Second Option', value: 'second'},
    {text: 'Third Option',  value: 'third'}
 ],
 autoLoad : true,
 listeners: {
     change:function(field,value){
       console.log(field ' ' value);
     }
 },

});
  

Вам нужно изменить его следующим образом

Комментарии:

1. @llya .. я понял, что проблема заключалась в autoDestroy: true.. большое спасибо, приятель.

2. @llya .. еще одна вещь.. смотрите, когда мы добавляем элементы управления пользовательского интерфейса, он принимает ширину 100%.. как мы можем показать что-то вроде стиля iPhone. Отображается прямоугольный белый фон, назначенный по центру, где я могу разместить все свои компоненты. что-то похожее на homecontrolsblog. files.wordpress.com/2008/11/wl3iphone3.jpg

Ответ №2:

 var stateList = new Ext.form.Select({
 label : 'State',
 name: 'state',
 widht: '100%',
 options: [
    {text: 'First Option',  value: 'first'},
    {text: 'Second Option', value: 'second'},
    {text: 'Third Option',  value: 'third'}
 ],
 autoLoad : true,
 autoDestroy : true,
 listeners= {
    blur: function(selectField, e) {
            console.log(selectField.getValue());
    }
 }

});
  

Комментарии:

1. этот фрагмент кода не имеет никакого эффекта. он ничего не печатает в журналах