2016-07-21 11 views
0

Ext.jsプロジェクトでホットキーを設定しようとしています。私のコードは以下の通りです。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"}, 
    ] 
} 

どのようにホットキーが押されたときに、私は正常にこの関数を呼び出すことができますか?

答えて

0

直接関数を呼び出すのではなく、スコープで渡しながら、目的の関数を呼び出す関数を呼び出します。

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