对于我的应用中的每个视图,我正在尝试为创建视图时创建fhActivate
和fhDeactivate
事件。被破坏所以我可以执行不同的必要功能。在我的主控制器中,在创建视图后,我执行此操作:
view.fireEvent('fhActivate');
在另一个控制器中,我正试着听这样的事件:
config: {
refs: {
rankings: {
selector: 'fhrankingspanel',
xtype: 'fhrankingspanel',
autoCreate: true
}
},
control: {
rankings : {
fhActivate: 'onRankingsActivate'
}
},
onRankingsActivate: function() {
console.log('activate');
}
}
视图加载正常,xtype在该类中定义如下:
alias: 'widget.fhrankingspanel'
但是我收到了这个错误:
Uncaught TypeError: Cannot call method 'apply' of undefined
我错过了什么?
更新
我还要注意,我在控制配置对象中尝试了这个:
rankings : {
fhActivate: this.onRankingsActivate
}
我也尝试将我的参考设置为简单的东西:
rankings: 'fhrankingspanel'
答案 0 :(得分:1)
未定义回调方法时会发生此错误。您可能在注册活动时遇到拼写错误或范围问题。
在你的情况下,你应该首先尝试写这个.onRankingsActivate而不是'onRankingsActivate'
答案 1 :(得分:0)
如果不在config对象中包装方法,它也会有所帮助。在回顾这里的文档时,我注意到了我的愚蠢错误:
http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Controller
一旦我改变了它,并使我的控制方法看起来像这样,它起作用了:
control: {
rankings : {
fhActivate: 'onRankingsActivate'
}
}