我正在使用Highcharts显示图表:当文档准备好时,ajax 请求将获取数据(JSON 格式)并使用一些默认数据和一些动态数据(点)初始化 chart
对象:
$('document').ready(function() {
var chart;
$.ajax({
url: "{{ path('stats_update') }}",
type: "POST",
dataType: "json",
success: function(data){
data.chart.renderTo = 'chart'; // id of the div element
chart = new Highcharts.Chart(data); // inizialize chart object
}
});
}); // end of document.ready
到目前为止,一切都很好,除了我必须发回一些回调时。它不起作用,我找不到原因。图表“卡住”并且不显示工具提示:
这是格式化程序函数回调应该如何初始化(工作):
var chart = new Highcharts.Chart({
tooltip: {
formatter: function() { return this.x; }
});
这就是我使用 JSON 发回回调的方式:Twig 模板引擎手动输出 JSON - 无 json_encode(不起作用):
{
"tooltip" : {
"formatter" : "function() { return this.x; }"
}
}
使用 jQuery 解析 JSON 没有错误。我想我不是 javascript 也不是 jQuery 专家...感谢您的帮助。
最佳答案
twig 模板中的函数将作为字符串而不是函数输出。
$.ajax({
url: "{{ path('stats_update') }}",
type: "POST",
dataType: "json",
success: function(data){
data.chart.renderTo = 'chart'; // id of the div element
data.tooltip.formatter = eval('(' + data.tooltip.formatter + ')');
chart = new Highcharts.Chart(data); // inizialize chart object
}
});
关于javascript - 可以用 JSON 发送 javascript 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720073/