使用up和down方法的extjs
我试图使用使用up和down方法的extjs,extjs,extjs4,Extjs,Extjs4,我试图使用up和down来调用,而不是Ext.getCmp,但我不太理解它。我有这个密码 listeners: { 'change': function(field, selectedValue) { // Ext.getCmp('wildAnimal').setValue(selectedValue); this.up('form').down('#wildAnimal').setValue(selectedValue); } } 在这个更大的
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');
});
Ext.define('ryan'{
构造函数:函数(){
Ext.create('Ext.form.Panel'{
车身样式:{“背景色”:“绿色”},
名称:“mypanel”,
标题:“动物保护区,每个地点一只动物”,
宽度:300,
车身衬垫:10,
测试:“mycat”,
样式:“背景色:#Fdd;”,
renderTo:Ext.getBody(),
项目:[{
itemId:'按钮1',
xtype:'按钮',
文本:“单击按钮”,
处理程序:函数(){
警惕(“()”);
}
},{
itemId:'野生动物',
xtype:'textfield',
字段标签:“动物:”,
名字:“我的动物”
},{
itemId:'myCombo',
xtype:'组合',
fieldLabel:“选择您的动物”,
商店:动物,
queryMode:'本地',
displayField:'名称',
听众:{
“更改”:函数(字段,selectedValue){
//Ext.getCmp(“野生动物”).setValue(selectedValue);
this.up('form').down('wildAnimal').setValue(selectedValue);
}
}
}]
});
}
});
var=Ext.create('Ext.data.Store'{
字段:['itemId','name'],
数据:[{
“项目ID”:“mycat”,
“名称”:“mycat”
},{
“itemId”:“mydog”,
“名称”:“我的狗”
},{
'itemId':'sbBarGirls',
“名称”:“酒醉时的讨价还价”
}]
});
Ext.onReady(函数(){
var a=外部创建(“ryan”);
var b=外部创建(“ryan”);
});
我感到困惑的是,为什么我需要
wildAnimal
中的hashtag来实现这个功能。另外,当我将Ext.form.Panel
切换到widget.window
时,侦听器代码停止工作。我的代码创建了一个窗口,但我不能像传递表单面板时那样传递组合框的值。据我所知,up
用于从父类中查找内容。使用widget.window
时,我是否调用this.up(widget)
?我不能让它工作。另外,我对Ext JS非常陌生,所以很多事情可能会超出我的理解范围>\uup>使用up
和down
方法遍历组件树
使用带有选择器的up
和down
时,默认选择器会检查组件的X类型。因此,up('form')
意味着“继续向上搜索组件树,直到找到一个表单。”#wildAnimal
选择器意味着“继续向上搜索,直到找到id='wildAnimal'的组件”。如果使用不带选择器的up()
,它将返回父容器
如果您决定使用
Ext.window.window
而不是Ext.form.Panel
,则需要使用up('window')
更改所有出现的up('form')
。否则,如果您知道“myCombo”和“wildAnimal”是同级组件,则只需使用up().down(“#wildAnimal”)
,在更改父容器的类型后,它就会工作。up和down方法的符号遵循该类。强烈建议您阅读此网站上的API文档。关于ExtJS的入门,请参见下文
祝你好运
我就把这个留给你 这是我为同事准备的入门资源列表: 显然,链接是指向ExtJS4.1的,但是可以在最新版本中随意获取相同的链接 API: 示例: 指南: 资源: 森查论坛: 堆栈溢出: 工具: Firebug插件(开发者指南) 如何开始
1. Scroll through the Examples to get ideas of what you want to build.
2. Read through these Guides :
○ Getting Started
○ Class System
○ MVC
○ Layouts
○ Components
○ Data Package
熟悉这些概念后,请决定将使用哪些组件,并深入查看组件部分下的特定指南。我还建议您通读应用程序体系结构教程。我是否总是需要hash标签??我看到过没有hastag的示例,仅当您想选择on
id
或itemId
时。其他方法,如Ext.getCmp
假设输入字符串是一个ID,不需要hashtag。