Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AMSCHART4:&x27;legendSettings'';itemValueText';检查是否存在空值或未定义的值_Javascript_Amcharts_Amcharts4 - Fatal编程技术网

Javascript AMSCHART4:&x27;legendSettings'';itemValueText';检查是否存在空值或未定义的值

Javascript AMSCHART4:&x27;legendSettings'';itemValueText';检查是否存在空值或未定义的值,javascript,amcharts,amcharts4,Javascript,Amcharts,Amcharts4,所以,我创建了一个百分比柱状图,在这个柱状图上,我在工具提示和图例中显示数据,类似于。 最后我还增加了%。(我从后端API获得的数据分别是40%、55%、90%,即40%、50%和90%,而不是0.4或0.5)。 我还显示了开始阶段的平均百分比 series.legendSettings.itemValueText = "[bold]{valueY}%[/]"; series.legendSettings.valueText = "(Avg: [bold]{valueY.average.form

所以,我创建了一个百分比柱状图,在这个柱状图上,我在工具提示和图例中显示数据,类似于。 最后我还增加了%。(我从后端API获得的数据分别是40%、55%、90%,即40%、50%和90%,而不是0.4或0.5)。 我还显示了开始阶段的平均百分比

series.legendSettings.itemValueText = "[bold]{valueY}%[/]";
series.legendSettings.valueText = "(Avg: [bold]{valueY.average.formatNumber('#.##')}%[/])";
因此,在某些情况下,对于整个数据集,其中一列为null或未定义,我无法获取键本身,这导致图例仅显示%。悬停时,它将显示%

所以我的问题是-是否有某种方法可以检查'itemValueText'或{valueY}来检查它是否为'undefined',而不是在最后添加%? 或者有没有别的办法,我做错了? 基本上-

series.legendSettings.itemValueText = "{valueY}";
if (series.legendSettings.itemValueText !== undefined) {           // or check {valueY}
    series.legendSettings.itemValueText = "[bold]{valueY}%[/]";    // Only if value is undefined add % in last
    series.legendSettings.valueText = "(Avg: [bold]{valueY.average.formatNumber('#.##')}%[/])";
}
您可以在图例的模板上创建适配器,以根据模板字符串检查最终文本输出,并进行相应调整

chart.legend.valueLabels.template.adapter.add("textOutput", function(text, target) {
  if (text === '(Avg: [bold]%[/])') {
    return 'N/A';
  }
  else if (text === '[bold]%[/]') {
    return '';
  }
  return text;
});