2017-01-06 4 views
2

Причина: Нам нужно прекратить разрешать увольнение элемента U/I, пока мы ждем ответа от внешнего устройства/системы. Я пробовал несколько разных подходов (keymap, onEsc). Уже есть рабочий слушатель, который отклоняет маску, когда внешняя система возвращается с данными. Вот код, как он у меня в данный момент ...Необходимо создать маску, вызванную в диалоговом окне ignore escape (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

Какой браузер вы используете.Bcoz 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); 
    } 
}, 

Прекрасно подходит для моего применения.

Смежные вопросы