使用 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
});
我正在尝试在 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
});