Вызов функций с обработчиками щелчков в ExtJS 4 - PullRequest
1 голос
/ 09 августа 2011

У меня есть функция внутри панели инструментов, давайте назовем ее:

Ext.define('MyArchive.Toolbar', { 
  search: function() {
    console.log('searching');
  }
}

Теперь я бы хотел вызвать эту функцию при нажатии кнопки.Поэтому я добавляю несколько обработчиков щелчков в afterRender в настройках панели инструментов:

afterRender: function() {
  Ext.getCmp('search-button').on('click', this.search);
} 

Однако это не работает, и в конечном итоге мне нужно пройти полный путь:

afterRender: function() {
  Ext.getCmp('search-button').on('click', function() {
    quick_search();
  )};
}

Есть какая-то конкретная причина, почему моя первая попытка не применяет обработчик кликов, как я ожидаю?

Спасибо за любые объяснения или рефакторинги!Дополнительные шаблоны / идиомы приветствуются ...

1 Ответ

1 голос
/ 09 августа 2011

Следующая попытка:

    var panelOverall = new Ext.form.FormPanel({
    html: 'bla',
    search: function() {
        console.log('searching');
    },
    buttons: [
        {
            text: 'Moo',
            id: 'button1',
            handler: function(){
                //window.destroy();
            }
        }
    ],
    afterRender: function() {
        Ext.getCmp('button1').on('click', this.search);
    } 
});

работает на меня ... я что-то упустил?

...