我正在使用prototype.js。
这是我的代码:
Event.observe(document, 'dom:loaded', function() {
new Ajax.Request('/HumblFin/Serv',
{
method:'get',
onSuccess: function(transport){
var data = transport.responseText.evalJSON();
drawChart(data);
},
onFailure: function(){ alert('Something went wrong...') }
});
function drawChart(data)
{
for (var i = 0; i < data.jobs.length; i++) {
priceData.push([i, data.jobs[i].INCPU]);
dateData.push(data.jobs[i].Dater);
}
}
HumbleFinance.init('finance', priceData , dateData);
HumbleFinance.init('finance', priceData , dateData);
负责显示图表。
问题是,HumbleFinance.init的调用时间早于AJAX调用,所以显示空图表。
请告诉我如何将Ajax调用返回的数据提供给函数HumbleFinance.init('finance', priceData , dateData);
答案 0 :(得分:2)
不知道data
是什么以及它与HumbleFinance.init
的关系,只是将函数调用放在回调中:
Event.observe(document, 'dom:loaded', function() {
new Ajax.Request('/HumblFin/Serv', {
method:'get',
onSuccess: function(transport){
var data = transport.responseText.evalJSON();
HumbleFinance.init('finance', priceData , dateData);
drawChart(data);
},
onFailure: function(){ alert('Something went wrong...') }
});
});
答案 1 :(得分:0)
值得注意的是,如果请求的Content-type
设置为application/json
,则prototype会自动评估JSON。
您可以var data = transport.responseJSON;