【问题标题】:json request with data variables - how do I read the variable in the function?带有数据变量的 json 请求 - 如何读取函数中的变量?
【发布时间】:2013-03-07 20:48:34
【问题描述】:

从名为 bundleOfData 的数组中加载一堆 json 文件。 .url 是每个 json 文件的 url。

如何在 processData 函数中读取我的变量“myI”?

for(var i = 0; i < bunchOfData.length; i++){
        $.getJSON(bunchOfData[i].url, {"myI":i}, function(ds){}).success(processData);

        function processData(ds){
            console.log(ds.myI); //undefined
        }
    }

【问题讨论】:

  • 你能说得更具体点吗?发布您的 json 对象。
  • 你试过console.log(arguments)吗?
  • 您想获取您在processData发送myI 值吗?
  • @RocketHazmat - 是的。我希望它在 processData 中。 processData 函数仅在 json 加载成功时触发数据时触发。
  • @Shaanimal 是的,我看到 2 个对象和一个“成功”。但我没有。

标签: javascript jquery json function variables


【解决方案1】:
function successHandler(i){
    console.log('i is instantiated/stored in the closure scope:',i);
    return function(data, textStatus, jqXHR){ 
        // here, the server response and a reference to 'i'
        console.log('i from the closure scope:',i, 'other values',data,textStatus,jqXHR);
    }            
}

var i = 0; i < bunchOfData.length; i++){
    $.getJSON(bunchOfData[i].url, {"myI":i}, function(ds){}).success(successHandler(i));

}

【讨论】:

  • 好的,这样我就可以得到正确的“i”,但不会发送我的 ds(数据集)。如果我做 handler(ds, i),它不知道 ds 是什么。无论如何让我在该处理函数中传递 i 和 ds ?
  • return function(){ 更改为return function(ds){
  • @RocketHazmat ? “返回函数”没有写在任何地方。这只是函数(ds)
  • @SShazboticus:内部function handler(i){
  • 你必须把它写出来。我不确定你在说什么。
【解决方案2】:

你不能访问范围之外的变量,响应只会是有效的

function(ds){
    // Here
}

试试这个:

for(var i = 0; i < bunchOfData.length; i++){
    $.getJSON(bunchOfData[i].url, {"myI":i}, function(ds){
        console.log(ds);
    });
}

此外,一旦请求完成并且success 的内容成功运行,请注意,您尝试实现的目标可能不是单个请求(您可以统一文件并在单个请求中提供它们),所以你得到数据然后迭代。

【讨论】:

  • 不幸的是,这也不起作用。我尝试的第一件事。 =/
  • 控制台说什么 XMLHttpRequests?请求的响应是什么?
  • 控制台说每个对象,我可以查看内容。 (铬)
  • 如果您可以查看内容,这意味着console.log(ds); 输出对象,ds 包含您的数据,您只需要使用正确的键...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多