Загрузка файла JSON с помощью jQuery.помощью метода getjson
Я новичок в JS и пытаюсь сделать что-то очень простое.
У меня есть файл JSON с именем " data.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
? Есть предложения?
1 ответ:
data
определяется только внутри обратного вызова, который вы передаете вgetJSON
. Все, что вы собираетесь делать с этим, должно быть сделано в рамках этой функции.Поэтому вместо (или в дополнение к)
console.log(data)
, вам нужно выполнить вызовhandsontable
(или вызвать функцию, которая выполняет вызовhandsontable
) прямо там, в обратном вызове getJSON.Также,
getJSON
является асинхронным, что означает, что даже если вы сделаете что-то вроде назначенияdata
глобальной переменной внутри обратного вызова, эта переменная, вероятно, не будет иметь этого значение еще при переходе к следующей строке кода после вызоваgetJSON
. Все, что вы сделали, это выдали запрос: "Эй, пойдите, возьмите этот объект JSON, и когда вы закончите это делать, вызовите эту функцию. А пока я собираюсь заняться своими делами. Спасибо!"