2

我是 JS 的新手,我正在尝试做一些非常简单的事情。

我有一个名为“data.json”的 JSON 文件,我想加载它,所以,我这样做:

$.getJSON("data.json",function(data){
    console.log(data);
});

然后我将加载的 JSON 传递给执行此操作的库中的函数:

$("#example1").handsontable({
    data:data,     //<--- error here
    minRows: 2,
    minCols: 3,
    minSpareRows: 1,
    currentRowClassName: 'currentRow',
    currentColClassName: 'currentCol',
    autoWrapRow: true,
    colHeaders: true
});

$("#example1").handsontable('selectCell', 3, 3);

萤火虫 说

ReferenceError: data is not defined
[Break On This Error]   

data:data,

我以为我已经将 JSON 加载到data变量中了?有什么建议么?

4

1 回答 1

3

data仅在您传递给的回调中定义getJSON。无论您要做什么,都必须在该功能内完成。

console.log(data)因此,您需要在 getJSON 回调中进行handsontable调用(或调用执行调用的函数),而不是(或除此之外) 。handsontable

此外,getJSON它是异步的,这意味着即使您在回调中执行诸如分配给全局变量之类的操作,当您在调用data后进入下一行代码时,该变量可能还没有该值。getJSON你所做的只是发出一个请求——“嘿,去获取这个 JSON 对象,当你完成之后,调用这个函数。同时,我将继续我的工作。谢谢!”

于 2013-02-19T23:01:39.090 回答