Javascript 来自onLaunch()的ext js调用引用
我正在努力解决extjs/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',
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并在此处发布结果。谢谢你的努力!