首先要强调的是:我正在使用现代的sencha。 好好考虑以下观点:
Ext.define('myApplication.view.main.OrderView', {
extend: 'Ext.Container',
xtype: 'ordercontainer',
controller: 'order',
requires: [
'Ext.MessageBox',
'Ext.layout.Fit'
],
viewModel: 'main',
defaults: {
tab: {
iconAlign: 'top'
},
flex: 1
},
layout: 'vbox',
items: [
{
xtype: 'button',
text: 'test, to be updated',
height: 30,
flex: 0,
listeners: {
click: 'onClick'
}
},
]
});
使用相应的控制器:
Ext.define('myApplication.view.main.OrderController', {
extend: 'Ext.app.ViewController',
alias: 'controller.order',
onClick: function () {
debugger;
alert('onClick');
}
});
现在我可以在加载页面时看到按钮。我希望调用onClick函数(根据guide)。但事实并非如此。我没有看到任何警报,也没有(当开发控制台在chrome中打开时)onClick函数上的调试器暂停。
如果我更改按钮以使用handle
并使用代码隐藏它可以工作。然而,视图控制器不起作用。这不应该失败吗?或者我是否再次陷入使用经典指南的陷阱?
这是因为在现代,components没有事件click
但tap
所以改变你的代码是这样的:
items: [
{
xtype: 'button',
text: 'test, to be updated',
height: 30,
flex: 0,
listeners: {
tap: 'onClick'
}
},
]