2017-07-31 81 views
0

我试图用页面加载数据预先填充Handsontable电子表格。我的JSON文件存储在S3上。我能够通过AJAX成功地从S3加载数据,但之后我无法用我检索的数据填充插件。我当前的代码:使用AJAX从S3中将JSON数据加载到Handsontable中

$(document).ready(function() { 


    var objectData = $.ajax({ 
    type: 'GET', 
    url: "https://s3-us-west-2.amazonaws.com/path/to/file.json", 
    dataType: 'json', 
    crossDomain: true, 
    success: function(data) { 
     return data; 
    } 
    }), 
    container = document.getElementById('example'), 
    hot; 

    hot = new Handsontable(container, { 
    data: objectData, 
    colHeaders: true, 
    minSpareRows: 1 
    }); 

}); 

我没有收到任何错误,但可能数据无法按时加载?

回答

1

这不是$.ajax的工作方式。在success一个返回什么也不做objectData是一个承诺的对象,而不是响应数据

尝试:

$.ajax({ 
    type: 'GET', 
    url: "https://s3-us-west-2.amazonaws.com/path/to/file.json", 
    dataType: 'json', 
    crossDomain: true, 
    success: function(data) { 

    new Handsontable($('#example')[0], { 
     data: data, 
     colHeaders: true, 
     minSpareRows: 1 
    }); 
    } 
}).fail(function() { 
    console.log('Request failed, inspect arguments for details') 
}) 
+0

感谢您指出我的错误。出于某种原因,我认为将数据放入一个变量并在其后加载会是一个好主意。 –