2017-01-06 9 views
2

原因:在等待外部設備/系統回覆時,我們需要停止允許解除U/I元素。我嘗試了許多不同的方法(keymap,onEsc)。已經有一個工作監聽器在外部系統返回數據時解除掩碼。這裏是因爲我有它目前的代碼...需要通過對話框調用掩碼忽略轉義(ExtJS 5.1.2)

onSaveRecord: function() { 
    var me = this; 
    . 
    . 
    . 
    if (me.onRecordSaving(recordDetail, isNew)) { 
     var myMask = new Ext.LoadMask({ 
      msg: 'Processing', 
      target: me.getView(), 
      closable: true, 
      onEsc: function() { my.myOnEsc(); } 
     }); 

     myMask.show(); 
     //me.getView().mask('Processing'); 
     // 
     . 
     . 
     . 
}, 

myOnEsc: function() { 
    debugger; // <--- never hits this 
    Ext.emptyFn(); 
}, 
+0

您正在使用哪種瀏覽器.Boys onEsc完美無缺。請分享一些小提琴。 – Tejas

+0

我相信在Chrome瀏覽器上運行。我希望這適合你... https://drive.google.com/open?id=0B_ncyYTZrVeqUXpadDFjcDVNeVE – jtc

回答

1

在actualDialogBox.js這個彼時...

onSaveRecordClick: function() { 
    var me = this; 
    me.callSuper(); 
    var win1 = me.getView(); 
    . 
    . 
    . generic conditional code added 
    . (not pertinent to the escape key disabling). 
    . 
    if (condition) { 
     var win = Ext.WindowManager.getActive(); 
     win.setDisableEscapeKey(true); 
    } 
}, 

,並在上面的對話框的超級...

disableEscapeKey: false, 

setDisableEscapeKey: function (value) { 
    this.disableEscapeKey = value; 
}, 

onEsc: function() { 
    var me = this; 

    if (me.disableEscapeKey) { 
     Ext.emptyFn(); 
    } else { 
     me.callParent(arguments); 
    } 
}, 

完美適用於我的應用程序。