Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用up和down方法的extjs_Extjs_Extjs4 - Fatal编程技术网

使用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。