extjs - Sencha touch 2 Event listeners in Ext.Define -


i reading sencha docs event handling , listeners config. in documentation of the listener config found note :

note: bad practice specify listener's config when defining class using ext.define(). instead, specify listeners when instantiating class ext.create().

i have seen number of s.o. answers have listeners in ext.define().

also came accross blog post the evils of ext.define , listeners think more relevant ext-js sencha touch 2. , new sencha touch.

can explain difference cons of adding listeners in ext.define() , difference make?

the problem pretty basic. if have listener property in class, moment create instance of class , add listener property particular instance, gong override ext.define 's listener property. this:

var obj = {   foo: {      bar : 'hello world'   } };  obj = ext.merge(obj, { // here ext.merge show how 2 objects can merged   foo : 'i got changed!' }); 

will bar property of foo object? no. identical properties overridden. similar things happen listeners too.

ext.define('abc', {   config : {     listeners : {       'tap' : ext.emptyfn     }    } });      var newpanel = ext.create('abc', {   listeners : {       'activate' : ext.emptyfn   }  }); 

the config object pass in ext.create merged config object of ext.define. so, better choice not use listener property in ext.define.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -