Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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
Javascript 来自onLaunch()的ext js调用引用_Javascript_Extjs - Fatal编程技术网

Javascript 来自onLaunch()的ext js调用引用

Javascript 来自onLaunch()的ext js调用引用,javascript,extjs,Javascript,Extjs,我正在努力解决extjs/js和this在其中的使用问题。我所做的是从ajax请求调用ref,这反过来又从onLaunch()函数调用,但extjs一直告诉我,ref没有定义。以下是示例代码: Ext.define('MyController', { extend : 'Ext.app.Controller', views : ['MyView'], refs : [ { selector : '#fieldId',

我正在努力解决extjs/js和
this
在其中的使用问题。我所做的是从ajax请求调用ref,这反过来又从onLaunch()函数调用,但extjs一直告诉我,ref没有定义。以下是示例代码:

Ext.define('MyController', {
    extend : 'Ext.app.Controller',
    views : ['MyView'],
    refs : [
        {
            selector : '#fieldId',
            ref : 'myUniqueField'
        }
    ],
    onLaunch : function () {
        this.foo();
    },
    foo ; function () {
        Ext.Ajax.request({
            url: myUrl,
            method: 'GET',
            scope: this,
            success : function (response) {  
                 // Here is the problem. getMyUniqueField() is undefiend
                 this.getMyUniqueField().setVisible(false); 
            },

    }
});  
我知道我们需要小心使用它,但在这个特殊的情况下,我真的不知道是什么错了。你能帮帮我吗?谢谢

我这样定义控件:

Ext.define('MyView', {
    extend : 'Ext.window.Window',
    items : [{
            // useless stuff
                            xtype : 'checkbox',
                            id : 'fieldId',
                            boxLabel : someText
                        }
            //useless stuff
        }
    ],    
});

看起来您正确定义了
Ext.Ajax.request
范围
配置,因此您的
ref
可能定义不正确。你能把你的领域定义在哪里吗?
this.getMyUniqueField()
是否在
Ext.Ajax.request
调用之前也返回undefined?@kevhender,问题是在
onLaunch()
函数中它返回
undefined
,但在这之后它工作正常。当用户点击表单上的一个按钮时,我调用这个函数,它工作得非常好。。。所以,也许,在我调用这个函数的时候,它还没有定义控件本身。。。请参阅我如何定义此控件的版本。所有内容看起来仍然正确,特别是当您在序列中稍后使用它时,它可以正常工作。是否确定在调用
onLaunch()
时已呈现窗口?调用时,窗口通常不一定在那里,因为它们通常是用
.show()
@kevhender打开的,是的,这正是我所关心的。。文档中没有提到视图和控制器的
onLaunch()函数之间的关系。我将尝试将我的函数分配给某个事件,而不是将其放入
onLaunch()
tommorow并在此处发布结果。谢谢你的努力!