extjs mit up und down Methoden

Ich versuche zu verwenden up und down zu nennen, anstatt Ext.getCmp aber ich bin mir nicht ganz verstehen. Ich habe diesen code

listeners: {
    'change': function(field, selectedValue) {
        //Ext.getCmp('wildAnimal').setValue(selectedValue);
        this.up('form').down('#wildAnimal').setValue(selectedValue);
    }
}

in diesem größeren code

Ext.define('ryan', {
    constructor: function() {
        Ext.create('Ext.form.Panel', {
            bodyStyle: {"background-color":"green"},
            name: 'mypanel',
            title: 'Animal sanctuary, one animal per location  ',
            width: 300,
            bodyPadding: 10,
            test: 'mycat',
            style: 'background-color: #Fdd;',
            renderTo: Ext.getBody(),
            items: [{
                itemId: 'button1',
                xtype: 'button',
                text: 'click the button',
                handler: function() {
                    alert('(<^_^>)');
                }
            },{
                itemId: 'wildAnimal',
                xtype: 'textfield',
                fieldLabel: 'animal:',
                name: 'myanimal'
            },{
                itemId: 'myCombo',
                xtype: 'combo',
                fieldLabel: 'choose your animal',
                store: animals,
                queryMode: 'local',
                displayField: 'name',
                listeners: {
                    'change': function(field, selectedValue) {
                        //Ext.getCmp('wildAnimal').setValue(selectedValue);
                        this.up('form').down('#wildAnimal').setValue(selectedValue);
                    }
                }
            }]
        });
    }
});

var animals = Ext.create('Ext.data.Store', {
    fields: ['itemId', 'name'],
    data: [{
        "itemId": 'mycat',
        "name": "mycat"
    },{
        "itemId" : 'mydog', 
        "name": "mydog"
    },{
        'itemId' : 'sbBarGirls', 
        "name": "BarGirls-when-drunk"
    }]
});

Ext.onReady(function() {
    var a = Ext.create('ryan');
    var b = Ext.create('ryan');
});

Was ich bin verwirrt, ist, warum brauche ich den hashtag in wildAnimal damit dies funktioniert. Auch wenn ich switch Ext.form.Panel zu widget.window die Zuhörer code nicht mehr funktioniert. Mein code erzeugt ein Fenster, aber ich kann nicht, übergeben Sie den Wert von der combobox, wie kann ich, wenn es ein Formular-panel. Wie ich es verstehe up verwendet wird, finden Sie Dinge, die aus der übergeordneten Klasse. Bei Verwendung eines widget.window rufe ich this.up(widget)? Ich kann nicht, dass, um zu arbeiten. Auch ich bin sehr neu in Ext JS so viele Dinge können gehen Sie über meinem Kopf >__<.

InformationsquelleAutor Ryan Williams | 2013-07-11

Schreibe einen Kommentar