我正在尝试响应控制器内的视图触发事件。该事件确实会触发,但永远不会调用控制器操作。
查看:
Ext.define("MyApp.view.Dashboard", {
extend: 'Ext.Container',
xtype: 'my_dashboard',
config: {
items: [
{
xtype: 'dataview',
listeners: {
itemtap: function(sender, index, elem, record) {
// fires with param, e.g. 'inbox'
this.fireEvent(record.get('name'));
}
}
}
...
控制器:
Ext.define('MyApp.controller.Dashboard', {
extend: 'Ext.app.Controller',
config: {
control: {
'my_dashboard': {
'inbox': 'showInbox',
...
}
}
},
showInbox: function () {
/* never gets called */
},
...
我究竟做错了什么?
更新:
我找到了一个解决方案,但感觉很hacky。我向数据视图和bubbleEvents
视图添加了一个配置,事件开始进入控制器。my_dashboard
由于仪表板可以有可变数量的项目,我不知道我需要冒泡哪些事件。当然,我可以冒泡所有可能的仪表板事件,但这似乎是一个巨大的杂物。
视图是否应该触发应用程序事件,例如MyApp.app.fireEvent()
?