ExtJS: передача аргументов для обработчиков событий - PullRequest
1 голос
/ 04 марта 2011

Я подключаю обработчик событий так:

Ext.getCmp('MyButton').on('click', this.onClick, null, {info: "foo"});

И обработчик такой:

function onClick(event, target, options) {
  alert(options);
}

Я получаю свой обратный вызов, но options идеткак undefined.Что не так?Мне кажется, что я делаю то, что предлагают документы .

1 Ответ

2 голосов
/ 04 марта 2011

Вы делаете то, что говорят документы, но неправильно истолковываете документы.Литерал параметров, который вы можете передать в качестве четвертого аргумента, настраивает слушателя (такие параметры, как задержка, область действия, ...).Вы не можете использовать его для передачи дополнительных аргументов функции слушателя.Вот где приходит createDelegate.

var a = new Ext.Button({ text: 'Click!', renderTo: Ext.getBody() });

a.on('click', function(){
    alert('click after 2 seconds!');
    console.log(arguments); // will log the strings 'Hello' and 'World'
}.createDelegate(a, ['Hello', 'World']), null, { delay: 2000 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...