在控制器中
listen: {
global: {
'ontest': 'ontestfunction'
}
},
ontestfunction: function(){
alert('oks 31');
}
在视图中
listeners: {
element: 'element',
click: function(){
Ext.GlobalEvents.fireEvent('ontest');
}
}
这是我找到工作的唯一方式,你知道其他方式吗?
答案 0 :(得分:2)
您可以使用Ext.app.Controller.getController
获取任何控制器。
由于application
是从控制器派生的,所以您只需知道应用程序的名称和所需的控制器;并且调用该函数是小菜一碟:
var configController = MyAppName.app.getController("MyAppName.controller.Configuration");
configController.ontestfunction();
答案 1 :(得分:1)
由于您使用的是EXT 6,我假设您使用的是视图控制器,而不是控制器。
Ext将自动解析作为视图控制器的范围,无需编写任何额外的代码。
首先确保将viewcontroller定义为视图的控制器:
controller: 'aliasofviewcontroller'
之后,您基本上可以将任何控制器功能分配给视图中组件的处理程序。
假设你的控制器中有以下功能:
onClickCustomHandler:function(e){
...
}
使用以下语法,每次点击“a”按钮时都会调用该函数:
Ext.create('Ext.Button', {
text: 'My button',
handler: 'onClickCustomHandler'
});
或使用xtype:
{
xtype:'button',
text:'My button',
handler: 'onClickCustomHandler'
}
进一步阅读:http://docs.sencha.com/extjs/6.0.2/guides/application_architecture/view_controllers.html