小提琴:https://fiddle.sencha.com/#fiddle/q02
Ext.define('EController', {
extend: 'Ext.app.ViewController',
alias: 'controller.test',
control: {
'#myAction': {
click: function() {
alert('My action')
}
}
}
});
var sellAction = Ext.create('Ext.Action', {
text: 'My action',
itemId: 'myAction'
});
var contextMenu = Ext.create('Ext.menu.Menu', {
items: [
sellAction
]
});
var grid = Ext.create('Ext.grid.Panel', {
controller:'test',
...................................
dockedItems: [{
xtype: 'toolbar',
items: [
sellAction
]
}],
警告在工具栏按钮中触发,但在上下文菜单中不起作用。
如何为上下文菜单按钮和工具栏按钮添加相同的侦听器? (最好的方式)
答案 0 :(得分:0)
你做不到。仅仅因为,与工具栏不同,上下文菜单不是网格的一部分 - 它只是由e.getXY()
处的网格显示。因此,您的control
指令无法访问上下文菜单。
另一种方法是使用动作处理程序而不是控制器的control
:
var sellAction = Ext.create('Ext.Action', {
text: 'My action',
itemId: 'myAction',
handler: function() {
alert('My action')
}
});