Ext JS 4.1 - 隐藏后不显示窗口

时间:2012-10-22 07:08:53

标签: extjs4 extjs4.1 extjs-mvc

隐藏它后,我无法显示一个被定义为类级别的窗口。 我需要使用show&在必要时隐藏它。

这是我到目前为止所尝试的内容:


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();
        }
    }
});

1 个答案:

答案 0 :(得分: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(赢);     console.info(赢的$ className); 检查是否未定义 null 且类名正确