Ext JS - 我在ajax请求成功函数中创建了一个窗口。
但是我在javascript控制台中得到了这个异常:
Uncaught TypeError: Cannot read property 'labelAlign' of undefined
这里有什么问题..
Ext.Ajax.request({
success : function(form,action) {
var win = new Ext.Window({
title : 'Update',
layout : 'fit',
id : 'appWindow',
width : 800,
height : 400,
modal : true,
items : [ that.updatePanel ]
});
},
failure : function(form,action) {
alert("fail");
}
});
答案 0 :(得分:0)
在您尝试访问updatePanel变量时,我觉得您遇到了范围问题。
当成功处理程序代码被命中时,默认情况下将范围设置为浏览器窗口对象,因此无法访问您在JS代码中声明的任何变量。
相反,您应该在AJAX请求代码中配置范围,如下所示:
var updatePanel = {formPanel declaration here};
Ext.Ajax.request({
success : function(form,action) {
var win = new Ext.Window({
title : 'Update',
layout : 'fit',
id : 'appWindow',
width : 800,
height : 400,
modal : true,
//Note I have changed that to this here...
items : [ this.updatePanel ]
});
},
failure : function(form,action) {
alert("fail");
},
//Setting this line below will now allow you to access any variables defined in this JS class
scope:this
});
如果这适合您,请告诉我们。