0

goog.net.XhrIo オブジェクトをインスタンス化する JS クラスがあります。これで、その JS 変数から必要なものをすべて取得できます。問題は、「親」クラスのインスタンス変数に値を割り当てようとすると、未定義のエラーが発生することです。これはスコーピングの問題だと思いますが、対処方法がわかりません。Google Closure Library を使用しています。コードは次の場所にあります。

メイン JS ファイル

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');
4

1 に答える 1

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');
于 2012-07-26T16:02:51.487 に答える