我想问一下我在哪里可以为我的网格MVC添加一个监听器
当我这样做时,没有任何事情发生:
Ext.define('myApp.view.reslist' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.reslist',
store : 'resStore',
listeners: {
activate: {
fn: function(e){
console.log('reslist panel activated');
}
}
},
dockedItems: [{
xtype: 'pagbar',
store: 'resStore',
dock: 'top',
displayInfo: true
}],
..... rest of grid configs
它适用于点击事件:
listeners: {
activate: {
fn: function(e){
console.log('reslist panel clicked');
}
}
}
注意:我的控制器的init仍为空:
Ext.define('myApp.controller.resControl', {
extend: 'Ext.app.Controller',
stores: ['resStore'],
models: ['resModel'],
views: ['reslist','pagbar'],
init: function() {
// nothing here
}
});
答案 0 :(得分:3)
视图的操作和事件进入其适当的控制器。我的观点仅包含用于构建和建立的配置和必要的方法。渲染组件。所有事件处理程序,按钮上的操作等都在控制器中。以下是我的控制器的样子:
Ext.define('myApp.controller.resControl', {
extend: 'Ext.app.Controller',
stores: ['resStore'],
models: ['resModel'],
views: ['reslist','pagbar'],
init: function() {
this.control({
'reslist' : {
activate: function(e) {
alert('reslist panel activated');
}
}
});
}
});
请注意,仅当使用选项卡面板显示时才会在面板上调用activate事件。通过单击选项卡激活面板时,将调用该事件。