Кажется, не может ответить на огонь события в прикосновении сенчи - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь запустить пользовательское событие в sencha touch, и оно, кажется, добавляется к событиям, которые могут быть запущены, и, похоже, срабатывает, но мой слушатель, похоже, не отвечает на событие. *

событие происходит здесь, где это тело формы:

Ext.apply(this, {
        scroll: 'vertical',
        dockedItems: [ titlebar, buttonbar ],
        items: [ fields ],
        listeners: {
            beforeactivate: function() {
                var saveButton = this.down('#userFormSaveButton');
                    saveButton.setText('Submit');
                    this.addEvents('cityUpdate');
                    console.log('event added');

            },
            deactivate: function() {
                this.resetForm();
            }
        }
    });

Событие запускается здесь:

  if (result.data != 'false' && result.data.state) {
        Ext.getCmp("usersForm").fireEvent('cityUpdate', result.data.towns);
        console.log('event fired');
        alert('Your town is ' + result.data.towns + ' ' + result.data.state.replace( /\+/g , ' ' ));

    }

Затем слушатель применяется к полю в форме здесь:

                {
                xtype: 'textfield',
                name: 'city',
                label: 'City*',
                placeHolder: 'New York',
                useClearIcon: true,
                id:'city',
                listeners: {
                    cityUpdate: function(city) {
                        console.log('event reponse' , this.fieldEl.dom , city);
                    }
                }
            },

Может кто-нибудь объяснить мне, почему я не могу увидеть ответный вызов события в консоли? Я вижу добавленное событие и событие сработало, но мне кажется, что я никогда не получаю событие для фактического запуска оператора консоли, отвечающего на событие. Я не получаю ошибок в консоли, так что я в некоторой растерянности относительно того, что здесь происходит?

1 Ответ

2 голосов
/ 25 января 2012

Похоже, что форма запускает событие, но вы добавили слушателя в текстовое поле в форме.

Если usersForm - это тот, который вызывает fireEvent, то прослушиватель этого события должен быть в самой usersForm.

Что произойдет, если вы добавите обработчик cityUpdate в первый фрагмент кода в том же блоке, что и beforeactivate и deactivate?Это ловит событие?Если так, то не ожидали ли вы, что его там поймают?Может быть небольшая проблема дизайна, если так.

...