我有这样的结构:
{
....
initComponent : function () {
....
this.appCombo = Ext.create('Ext.form.field.ComboBox', {
....
listeners : {
// Use 'data' here
}
}
},
load : function () {
var data = ....
}
}
我希望使用我提到的数据,但“data is undefined
”错误会继续弹出。请告知如何在我指定的地方访问“数据”变量。
答案 0 :(得分:1)
我不确定您使用的是哪个版本。但是你应该能够添加一个配置属性 - 然后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(...);
}
}
答案 1 :(得分:1)
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 = ....
}
答案 2 :(得分:1)
在对象中添加一个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();
}
}