我正在使用 Extjs 4.1.1。因为我遵循 MVC,所以我决定从网格中移动 'edit' 和 'beforeedit' 函数(rowEditing 插件),即:
listeners: {'edit': function(editor, e) {
...
},'beforeedit': function(editor, e) {
...
}}
并将其放入控制器中,就像: Ext JS 4 - How to control rowEditor inside controller
我的新代码如下所示:
init: function() {
this.control({
'myGrid': {
edit: this.onRowEdit
},
'myGrid': {
beforeedit: this.onRowBeforeEdit
},
});
},
onRowEdit: function(editor, e) {
... // Fires only when 'beforeedit' not present in this.control
},
onRowBeforeEdit: function(editor, e) {
... // Always fires
},
现在,'beforeedit' 触发良好。我的问题是只有在不存在“beforeedit”时才会触发“edit”。有人有同样的问题吗?当然,像旧网格监听器这样的方式对两者都适用。
编辑 我刚刚观察到,如果我在 this.control() 中首先定义“beforedit”,然后定义“编辑”,则“beforeedit”是不触发的。