EXTJS: hidden-element funktioniert nicht zeigen, bis nach setVisible-Methode

Hallo, ich möchte mir zu zeigen, und Bild, das ist wie ein Alarm-Zeichen, wenn eine änderung gemacht wird, dann habe ich ein footer-panel wie dieses, mit dem Zeichen:

Ext.define('footerPanel', {
    extend: 'Ext.panel.Panel',
    cls: 'fastec_background',
    height: 24,
    autoScroll: false,
    border: false,
    layout: {
        type: 'border'
    },
    id: 'panel_footerFastec',


    initComponent: function () {
        var me = this;


        Ext.applyIf(me, {
            items: [{
                margin: '5 5 0 20',
                xtype: 'label',
                region: 'center',
                html: '<a>© 2012 FASTEC GmbH, Paderborn, Germany - </a><a target="_blank" href="http://www.easyoee.de">www.easyOEE.de</a> <a target="_blank" href="http://www.fastec.de">www.fastec.de</a>'
            }, {
                xtype: 'container',
                region: 'east',
                layout: 'table',
                id: 'cont_footer_icons',
                items: [{
                    xtype: 'image',
                    id: 'configchangedIcon',
                    height: 16,
                    margin: '5 0 5 0',
                    width: 16,
                    maxHeight: 20,
                    dock: 'right',
                    maxWidth: 20,
                    scale: 'large',
                    src: 'files/images/disk_blue.png',
                    hidden: true
                }, {
                    xtype: 'image',
                    height: 16,
                    id: 'errorIcon',
                    margin: '5 0 5 0',
                    width: 16,
                    dock: 'right',
                    maxHeight: 20,
                    maxWidth: 20,
                    scale: 'large',
                    src: 'files/images/error16.gif',
                    hidden: true
                }]
            }]
        });


        me.callParent(arguments);
    }
});

Und die Idee ist, dass ich eine Allgemeine Funktion, die ich nennen könnte, überall und zeigen Sie oder verstecken Sie das icon, aber leider habe ich diese Funktion aufrufen und nichts passiert:

changeIconVisibility = function(str, value) {
    try {
        switch(str){
            case 'configchangedIcon':
                var img = Ext.getCmp('configchangedIcon');
                if(value){
                    img.setVisible(true);
                }else{
                    img.setVisible(false);
                }
            break;
        }
    } catch (e) {
        Ext.msg.alert(e);
    }
}

Ich versuchte, direkt durch den Aufruf der Komponente und die setVisible-Methode(true), wie gut und nichts passiert.

  • Tun Sie das Symbol sehen, wenn die versteckte config auf false festgelegt ist? Tut setVisible-Methode() aufgerufen werden, bei allen (sagen wir, indem Konsole.log () - nach es)?
  • Das icon hat die versteckte config true vor setVisible-Methode() aufrufen, und nachdem seine sogenannten hidden config falsch ist, aber es zeigt nicht das Symbol.
  • Ja, aber wenn Sie die versteckte config auf false, können Sie das Symbol sehen, wenn die Anwendung geladen wird? Dies ist nur zu prüfen, dass es nicht ein problem mit Ihrem layout/Bild-Lage, etc.
  • ja, ich kann es sehen...
  • Öffnen Sie die javascript-Konsole (Firebug, Developer tools...), während Sie in Ihrer app, und führen Sie Ext.getCmp('configchangedIcon');. Gibt es keine Folge (außer null oder undefined (nicht definiert) ?
  • hidden und visible sind nicht das gleiche Attribut, das ist, warum das Umschalten nicht funktionieren.

Schreibe einen Kommentar