0

在 Windows 8 中,我在循环中使用 WinJs.xhr 来下载一些内容,当它到达“完成回调”之后,我想传递一个参数来检索调用 xhr 的元素。

    for (var k = 0 ; k < 9; k++) {
                        var title = dataArray[k].name;
                        if (title != null)
                            url = monUrl+ title;

                        WinJS.xhr({ url: url, responseType: "responseXML" })
   .done(function complete(result) {

    //I would like to retrieve the right title here for example
       var dataArray = new Array();
       var xml = result.responseXML;
 }
}

感谢您的帮助

4

1 回答 1

1

您需要在闭包中捕获它,而对于普通的 for 循环/迭代来说,这很痛苦:

for (var k = 0 ; k < 9; k++) {
    (function(item) {
        var url;
        var title = item.name;
        if (title != null)
            url = monUrl+ title;

        WinJS.xhr({ url: url, responseType: "responseXML" }).done(function complete(result) {
            // I would like to retrieve the right title here for example
            var dataArray = new Array();
            var xml = result.responseXML;
            /* use your title property here */
        });
    })(dataArray[k]);
}
于 2012-08-09T17:31:34.963 回答