我已经设法得到这个if语句来运行第一部分,但如果位正确则不会运行else。我必须放错误,因为它只在xAxis上显示(Not Designated)。想知道为什么其他部分不起作用。
labels: {
formatter: function() {
// custom formatter
if (this.x == null) { return "(Not Designated)";
} else if (this.x != null ) {
return this.x;
}
},
它必须与我如何获取数据有关,因为我原来的if语句是这样的......
if (this.x == null) return '(Not Designated)';
else return this.x;
如果我使用“===”设置它不显示(未指定)或任何xAxis值,如果我使用“==”它将显示所有xAxis项目(未指定)。我知道这是一个非常简单的功能,但它不起作用,它或者与Highcharts格式化程序或我想要收集的数据有关。我还没有处理过多的值,所以对于糟糕的标记示例感到抱歉...感谢您的评论!
答案 0 :(得分:2)
当我使用调试器检查this.x时,它看起来像undefined:
我用“this.value”替换“this.x”,图表工作正常。 这是jsfiddle。
if (this.value == 0) {
return '(Not Designated)';
} else if (this.value != 0) {
return this.value;
}
如果您可以分享您正在使用的类别,那就太棒了!
答案 1 :(得分:1)
首先,在您提供的小提琴中,格式化程序功能未被封装到标签属性中。
labels: {
formatter: function() {
if (this.value == 0) {return '(Not Designated)';}
else {return this.value;}
},
},
},
还有另外两个问题:
答案 2 :(得分:0)
这是我最终得到的结果,花了我一段时间,但很高兴这会处理所有空值和所有空值,以防你们中的任何人遇到与数据库类似的问题。
// format the xAxis labels to handle null and blank values from database
formatter: function() {
if (this.x === null) {
return "(Not Designated)" + '<br>' + '$' + Highcharts.numberFormat(this.y, 0);
} else if (this.x === '') {
return "(Not Designated)" + '<br>' + '$' + Highcharts.numberFormat(this.y, 0);
}
return this.x + ' ' + '$' + Highcharts.numberFormat(this.y, 0);
}