【问题标题】:Loading Highcharts configuration externally从外部加载 Highcharts 配置
【发布时间】:2015-09-04 14:05:54
【问题描述】:

我有很多不同的图表,我正在使用 Highcharts 进行渲染。试图找到一种好的动态方式来做到这一点。这是我认为很好的概念证明。问题是图表具有不同的配置(和数据)。所以我最初的想法是,结合 mustasche.js,是这样的:

HTML:

<div class="highchart" 
     data-some-other-variable=""
     data-date-from="" 
     data-date-to="" 
     data-template="path/to/graph/graph.mustache"
>

然后是一个简单的 Javascript 概念证明

var chart = $('.highchart');

$.get(chart.data('template'), function(options) {
    // Do stuff 
    highcharts(options);
});

问题是,我得到的响应是纯文本。由于它不是有效的 json,因此无法将其解析为 javascript 变量。 (配置对象内部有一个格式化程序:function() {})。因此我不能用它来初始化 highcharts。 Eval 不是这个选项。有什么想法吗?

【问题讨论】:

    标签: javascript jquery json highcharts


    【解决方案1】:

    试试这个代码

    var chart = $('.highchart');
    
    $.ajax({
       url: chart.data('template'),
       type: "GET"
    }, function(data) {
       // Do stuff 
       var options = $.parseJSON(data);
       highcharts(options);
    });
    

    【讨论】:

    • 我尝试加载的文件不是有效的 JSON。一个例子是:labels: { formatter: function () { // 用于 highcharts 的东西 } }
    • 那么,你那里有无法执行的函数,对吧?
    • 问题是我无法将外部文件转换为 javascript 对象。
    • 问题是在json中你不能放置函数。所以也许更好的是准备“主题”之类的东西,然后调用合并函数将“主题”与特定图表的自己的选项结合起来?示例:jsfiddle.net/dd05Lr24/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 2018-09-18
    • 2014-08-07
    • 2015-11-27
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多