这个问题貌似不少人都疑惑,常见的方式是在handler里fireEvent,多少有点不爽。要说sencha也是,既然4.0主推mvc,官方例子里却用的还是handler的方式,最后还是按照官方论坛上一个哥们的方式实现了:
给actioncolumn配置action属性:
xtype:'actioncolumn',action:'edit'
...
controller中:
this.control({
"panelname actioncolumn[action=edit]": {
click: this.onEditClick
},
});
....
这样可以实现“干净”的view层,不过controller截获的event略诡异,经测试参数列表中一共8个参数,似乎截获的是Grid的cellclick( this, td, cellIndex, record, tr, rowIndex, e, eOpts ),但把参数挨个alert出来并不完全匹配,td对应的是CellElement,record对应的是rowIndex,rowIndex是个未知Object,e对应的是RowElement。。。
好在有了cell就能up到grid,暂时不去深究了。