引用不在作用域内的变量
refer to a variable which is not in scope
我有一个这样的结构:
{
....
initComponent : function () {
....
this.appCombo = Ext.create('Ext.form.field.ComboBox', {
....
listeners : {
// Use 'data' here
}
}
},
load : function () {
var data = ....
}
}
我希望使用我提到的数据,但' data is undefined
'错误不断弹出。请告诉我如何在我指定的地方访问'data'变量。
我不确定您使用的是哪个版本。但是你应该能够添加一个配置属性——Ext会自动为这个配置生成getter和setter。在尝试在侦听器中访问数据之前,请确保load方法已经设置了数据。
{
config: {
data: null
}
....
initComponent : function () {
var me = this;
....
this.appCombo = Ext.create('Ext.form.field.ComboBox', {
....
listeners : {
....me.getData(); // returns the data if it has been set already
}
}
},
load : function () {
var me = this;
me.setData(...);
}
}
在对象中添加一个vars
对象(不将其暴露给全局作用域),它将保存您的变量。
{
vars : {
data : null
},
initComponent : function () {
var self = this;
this.appCombo = Ext.create('Ext.form.field.ComboBox', {
listeners : {
alert(self.vars.data);
}
}
},
load : function () {
this.vars.data = 'Hello';
this.initComponent();
}
}
data : null,
initComponent : function () {
var me = this;
this.appCombo = Ext.create('Ext.form.field.ComboBox', {
....
listeners : {
// Use 'data' here
me.data = "FOO"
}
}
},
load : function () {
this.data = ....
}
相关文章:
- 带有KendoUI组件的Javascript变量作用域
- Javascript变量作用域:从回调函数中提取变量
- 使用JavaScript回调函数了解变量作用域和闭包
- jquery.post和变量作用域
- 变量作用域:在函数之间传递的名称
- 在 AJAX 和 Javascript 中使用变量和变量作用域
- 节点.js/express.js中的变量作用域
- jquery ajax 回调变量作用域(为什么有些在作用域中,而另一些则不在作用域中)
- JavaScript 中的变量作用域
- ajax GET 和 POST 中的变量作用域
- Javascript:变量作用域和全局变量的弊端
- Javascript 自执行函数和变量作用域
- 拼接上的Javascript全局变量作用域/覆盖
- 在Node中与jsdom和jquery共享变量作用域
- NodeJS:代码优化和变量作用域
- Javascript数组变量作用域
- AngularJS ng控制器指令不接受javascript中的变量(作用域函数),也不给出任何错误
- 回调函数中的变量作用域呢
- JavaScript/jQuery变量作用域导致错误
- AJAX变量作用域