无法将值从实例对象传输到父类的实例数组中

时间:2012-07-26 15:59:42

标签: javascript google-closure-library

我有一个JS类,我在其中实例化一个goog.net.XhrIo对象。现在我可以从JS变量获得我需要的所有东西,问题是每当我尝试将值赋给“父”类的实例变量时,我得到一个未定义的错误。我认为这是一个范围问题,但我不知道如何处理它。 我正在使用Google Closure Library。 代码可以在以下网址找到:

MAIN JS FILE

我正在尝试将所有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');

1 个答案:

答案 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');