使用 Ext.js 热键调用现有功能

Using Ext.js hotkeys to call existing function

我正在尝试在 Ext.js 项目中设置热键。我的代码如下。

_setHotKeys: function(values, button){
    var hotKeyMap = {
            target: document, 
            binding:[]
        }; 

        for(var i = 0; i < values.length; i++){
            if(values[i].hotkey){
                hotKeyMap.binding.push({
                    key: values[i].hotkey, 
                    fn: this._handleFillInValueButtonToggle(button, true)
                }); 
            }   
        }
        console.log(hotKeyMap); 
        var keyMap = new Ext.util.KeyMap(hotKeyMap); 
},

我有另一个函数,_handleFillInValueButtonToggle,我想在按下热键时调用它。 console.log(hotKeyMap) 的结果表明 fn 从未被设置为该函数,而是未定义:

{
    target: document, 
    binding: [
        { fn: undefined, key: "e"}, 
        { fn: undefined, key: "c"}, 
        { fn: undefined, key: "n"}, 
        { fn: undefined, key: "d"}, 
    ]
}

如何在按下热键时成功调用此函数?

不是直接调用函数,而是调用一个函数来调用你想要的函数,同时传入作用域。

hotKeyMap.binding.push({
    key: values[i].hotkey, 
    fn: function(){
        this._handleFillInValueButtonToggle(button, true);
    }, 
    scope: this
});