up
というよりも使ったりdown
呼んだりしようとしているのExt.getCmp
ですが、よくわかりません。私はこのコードを持っています
listeners: {
'change': function(field, selectedValue) {
// Ext.getCmp('wildAnimal').setValue(selectedValue);
this.up('form').down('#wildAnimal').setValue(selectedValue);
}
}
この大きなコードの中に
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');
});
私が混乱しているのは、wildAnimal
これを機能させるためにハッシュタグが必要な理由です。また、リスナーコードに切り替えるExt.form.Panel
と、動作が停止します。widget.window
私のコードはウィンドウを作成しますが、フォーム パネルの場合のようにコンボボックスの値を渡すことができません。私が理解しているようにup
、親クラスからのものを見つけるために使用されます。を使用するときは ?widget.window
を呼び出しthis.up(widget)
ますか? 私はそれを働かせることができません。また、私は Ext JS に非常に慣れていないので、多くのことが頭を悩ませるかもしれません >__<。