我是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
变量中?有什么建议吗?
答案 0 :(得分:3)
data
仅在您传递给getJSON
的回调中定义。无论你要做什么,都必须在这个功能中完成。
因此,不需要(或除了)console.log(data)
,您需要在getJSON中执行handsontable
调用(或调用执行handsontable
调用的函数)回调。
此外,getJSON
是异步的,这意味着即使您执行类似于将data
分配给回调内的全局变量的操作,该变量可能在您到达时仍然没有该值。 getJSON
调用后的下一行代码。你所做的就是发出一个请求 - “嘿,去获取这个JSON对象,当你完成这个时,请调用这个函数。同时,我将继续我的业务。谢谢!”