2012-10-22 32 views
0

隱藏後,我無法顯示定義類級別的窗口。 我需要使用show &只要有必要就隱藏它。Ext JS 4.1 - 隱藏後不顯示窗口

這裏是我試過到目前爲止:使用外蓋


isCapsLock實用功能鎖定開/關操作:

function(e) { 

    e = (e) ? e : window.event; 

    var charCode = false; 
    if (e.which) { 
     charCode = e.which; 
    } else if (e.keyCode) { 
     charCode = e.keyCode; 
    } 

    var shifton = false; 
    if (e.shiftKey) { 
     shifton = e.shiftKey; 
    } else if (e.modifiers) { 
     shifton = !!(e.modifiers & 4); 
    } 

    if (charCode >= 97 && charCode <= 122 && shifton) { 
     return true; 
    } 

    if (charCode >= 65 && charCode <= 90 && !shifton) { 
     return true; 
    } 

    return false; 

} 


Ext.define('MyApp.controller.LoginController', { 
    extend  : 'Ext.app.Controller', 
    views  : [ 'notification.CapsLockNotification' ], 
    refs   : [{ 
     ref  : 'capsLockNotification', 
     selector: 'capslocknotification' 
    }], 
    init  : function() { 
      this.capsLockNotification = Ext.widget('capslocknotification'); 
      this.control({ 
        'loginform #password' : { 
         keypress : this.handleCapsLock 
        } 
       // control logic goes here 
      }); 
    }, 
    handleCapsLock : function(field, eOpts) { 
     var win = this.getCapsLockNotification(); 
     if(ExtUtil.isCapsLock(eOpts)) { 
      win.show(); 
     } else { 
      win.hide(); 
     } 
    } 
}); 
+0

你能告訴我你的getCapsLockNotification()函數?另外,它是否會顯示警告?我會更容易跟蹤錯誤(如果有的話),如果你調試它,讓我們說「螢火蟲」 –

+0

它由Ext使用refs生成(更新的第一篇文章;補充參考) – talha06

+0

ExtUtil.isCapsLock從哪裏來?你怎麼調用handleCapsLock?如果你的函數看起來正確隱藏窗口,你能檢查win.show();被擊中。 –

回答

0

檢查,如果選擇器返回正確的組件。 使var贏得全局: handleCapsLock:function(field,eOpts){ win = this.getCapsLockNotification(); if(ExtUtil.isCapsLock(eOpts)){ win.show(); } else { win.hide(); } } 並在firefox上打開firebug控制檯或在Chrome上使用開發人員工具控制檯(均使用CTRL + SHIFT + J) 在控制檯中寫入: console.info(win); console.info(win。$ className); 檢查是否arenot 未定義和類名的正確