使用jQuery.getJSON加载JSON文件

时间:2013-02-19 22:58:42

标签: javascript jquery

我是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);

Firebug说

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

data:data,

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

1 个答案:

答案 0 :(得分:3)

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

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

此外,getJSON是异步的,这意味着即使您执行类似于将data分配给回调内的全局变量的操作,该变量可能在您到达时仍然没有该值。 getJSON调用后的下一行代码。你所做的就是发出一个请求 - “嘿,去获取这个JSON对象,当你完成这个时,请调用这个函数。同时,我将继续我的业务。谢谢!”