Ich versuche up
und down
zu verwenden, anstatt Ext.getCmp
anrufen, aber ich verstehe es nicht ganz. Ich habe diesen Codeextjs mit Auf-und Ab-Methoden
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 auf, warum ich das Hashtag in wildAnimal
brauchen diese Funktion zu erhalten. Auch wenn ich zu widget.window
umschalte, hört der Listener-Code auf zu arbeiten. Mein Code erstellt ein Fenster, aber ich kann den Wert der Combobox nicht übergeben, wie ich es kann, wenn es ein Formularfeld ist. Wie ich es verstehe, up
wird verwendet, um Sachen von der Elternklasse zu finden. Wenn ich eine widget.window
verwende, rufe ich this.up(widget)
an? Ich kann das nicht zur Arbeit bringen. Ich bin auch sehr neu in Ext JS, so viele Dinge können über meinen Kopf gehen> __ <.
Muss ich immer das Hash-Tag haben ?? Ich habe Beispiele ohne hagag gesehen –
Nur wenn Sie auf 'id' oder 'itemId' auswählen möchten. Andere Methoden wie Ext.getCmp nehmen an, dass die Eingabezeichenfolge eine ID ist und den Hashtag nicht benötigt. – Eric