使用highcharts-convert.js设置格式化程序回调

时间:2014-04-21 18:21:39

标签: highcharts

我正在使用highcharts-convert.js在服务器端创建PDF图表。我想为柱形图(http://api.highcharts.com/highcharts#plotOptions.column.dataLabels)设置dataLabel格式化程序。由于这是一个函数,我不能在我的输出json文件中写入它,该文件是highcharts-convert.js的输入。所以我假设我需要把它放在我的callback.js中并称之为:

highcharts-convert.js -infile infile.js -outfile outfile.pdf -width 1000 -callback callback.js

但是我无法在callback.js中设置formatter函数。我试过这个:

function( chart ) {
    var labelFormatter = function(p) {
        if (this.y == 0) {
            return '';
        }
        else {
            return this.y
        }
    };

    chart.series.dataLabels.formatter = labelFormatter;
}

但是这给了我这个错误:

TypeError: 'undefined' is not an object (evaluating 'chart.series.dataLabels.formatter = labelFormatter')

我尝试将formatter函数放在回调的定义之外,但是highcharts-convert.js不会接受。如何为highcharts-convert.js设置dataLabel格式化程序回调?

2 个答案:

答案 0 :(得分:3)

嗯,Highcharts导出服务器的输入文件不一定是真正的JSON。通常,支持JSON中的函数。只需使用它作为示例:

{"series": [{"data": [29.9, 71.5, 106.4], "dataLabels": { "enabled": true, "formatter":function(p) {if (this.y == 0) {return '';} else {return this.y+'a';}}}}]}

答案 1 :(得分:0)

如果您在服务器端使用回调函数,请使用此功能。

@Entity
@Table(name="emptest4")
public class Employee {

    @Id
    @Column(name="uid", columnDefinition = "UUID")
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    private UUID originalUid;

    public String getUid(){
        return ..// convert originalUid to string
    } 

    public void setUid(String id){
        originalUid =  ..// convert id to originalUid
    } 

    //Getter and Setter for originalUid value

}