我有一个JS类,我在其中实例化一个goog.net.XhrIo对象。现在我可以从JS变量获得我需要的所有东西,问题是每当我尝试将值赋给“父”类的实例变量时,我得到一个未定义的错误。我认为这是一个范围问题,但我不知道如何处理它。 我正在使用Google Closure Library。 代码可以在以下网址找到:
我正在尝试将所有POST请求的结果存储在this.items对象/数组中。行号是270.如果您在浏览器中查看此内容,请搜索“console.log(this.mainView);”它将直接带您到问题所在。
goog.net.XhrIo.send(this.URL+'/action.url.php', function(e){
var items = new Object();
items = e.target.getResponseJson();
for(var x in items)
{
var currentName;
var currentCat;
if(items.hasOwnProperty(x))
{
currentName = items[x].name;
currentCat = items[x].categories;
}
var x = goog.dom.createDom('div', {
}, currentName, currentCat);
console.log(this.mainView);
}
return e;
},'POST', 'action=getUserData');
答案 0 :(得分:0)
尝试使用goog.bind
将处理程序绑定到对象:
goog.net.XhrIo.send(this.URL+'/action.url.php', goog.bind( function(e){
var items = new Object();
items = e.target.getResponseJson();
for(var x in items)
{
var currentName;
var currentCat;
if(items.hasOwnProperty(x))
{
currentName = items[x].name;
currentCat = items[x].categories;
}
var x = goog.dom.createDom('div', {
}, currentName, currentCat);
console.log(this.mainView);
}
return e;
}, this),'POST', 'action=getUserData');