我正在使用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格式化程序回调?
答案 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
}