-
15 Nov 2011 12:48 AM #1
Answered: Assigning listeners in config does not apply the handlers to a panel
Answered: Assigning listeners in config does not apply the handlers to a panel
When creating a new instance, the listeners won' tbe fired, however when using on()/addListener() upon the instance, then the events work. What's going on?Code:Ext.define('MyApp.view.Add', { extend: 'Ext.Panel', config: { fullscreen: true, layout: 'card', items: [ { xtype: 'panel', layout: { type: 'vbox', pack: 'center', align: 'center' }, items: [ { xtype: 'panel', html: 'Justin Beefer' } ] } ], listeners: { painted: function() { console.log('foo'); } } },
-
Best Answer Posted by jay@moduscreate.com
You should use the following pattern:
Code:Ext.define('MyApp.view.Add', { extend: 'Ext.Panel', config: { fullscreen: true, layout: 'card', items: [ { xtype: 'panel', layout: { type: 'vbox', pack: 'center', align: 'center' }, items: [ { xtype: 'panel', html: 'Justin Beefer' } ] } ] }, initialize : function() { this.on({ scope : this, painted : this.onPainted }); this.callParent(); }, onPainted : function() { console.log('foo'); } })
-
16 Nov 2011 1:58 PM #2Sencha - Senior Forum Manager
- Join Date
- Mar 2007
- Location
- St. Louis, MO
- Posts
- 34,107
- Vote Rating
- 453
- Answers
- 3157
When creating new classes, using on() is the preferred way to add listeners. This gives you the flexibility to add listeners when you instantiate the class.
Mitchell Simoens @SenchaMitch
Sencha Inc, Senior Forum Manager
________________
http://www.JSONPLint.com - Source to lint your JSONP!
Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
https://github.com/mitchellsimoens
Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/
Need more help with your app? Hire Sencha Services services@sencha.com
Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is almost in print!
When posting code, please use BBCode's CODE tags.
-
17 Nov 2011 10:05 AM #3Sencha - Community Support Team
- Join Date
- Mar 2007
- Location
- Frederick MD, NYC, DC
- Posts
- 16,170
- Vote Rating
- 32
- Answers
- 83
You should use the following pattern:
Code:Ext.define('MyApp.view.Add', { extend: 'Ext.Panel', config: { fullscreen: true, layout: 'card', items: [ { xtype: 'panel', layout: { type: 'vbox', pack: 'center', align: 'center' }, items: [ { xtype: 'panel', html: 'Justin Beefer' } ] } ] }, initialize : function() { this.on({ scope : this, painted : this.onPainted }); this.callParent(); }, onPainted : function() { console.log('foo'); } })
Jay Garcia @ModusJesus || Modus Create co-founder
Ext JS in Action author
Sencha Touch in Action author
Get in touch for Ext JS & Sencha Touch Touch Training
We are also working on Video-based Sencha Touch training: Check it out here.


Reply With Quote