现在的位置: 首页 > 综合 > 正文

Ext错误列表——回调函数如何传参

2013年10月01日 ⁄ 综合 ⁄ 共 691字 ⁄ 字号 评论关闭

    在项目中,我碰到了这样一个问题,以前是的问题描述和解决过程。

    点击按钮,弹出确认对话框,YES则回调函数处理,回调函数需要使用到一个对象——他的类型是Ext.grid.GridEdit:

handler : function() {
        Ext.MessageBox.confirm(
'提示''确实要保存修改记录?', doSave);
}

    开始将doSave方法写在function里面,grid可以作为一个方法中的全局变量,可以被doSave使用,但这显然是不对的,FireDebug下调试,也提示找不到doSave方法。可能是方法中不能有另一个方法的定义吧。

    于是,我这样更改了一下:

handler : function() {
        Ext.MessageBox.confirm(
'提示''确实要保存修改记录?', doSave(grid));
}

    bug不存在了,但是新的问题出现了,我发现,不等我点YES或NO的按钮,doSave方法已经执行了。回头一想,这样写恐怕就是直接的函数调用,而非回调函数。

    那么如何在回调函数时,传递参数呢?google了一下,一个朋友的blog给了我一个启发,他的做法是:

handler : function() {
        Ext.MessageBox.confirm(
'提示''确实要保存修改记录?', function() {doSave(grid)});
}

    问题解决了,我在function外,写了doSave的定义,断点查看gird对象,它是一个完整的GridEdit。

抱歉!评论已关闭.