Highcharts 如何切换 DataLabel

Highcharts How to toggle DataLabel

我有一个包含两个系列的图表。我想通过单击按钮来切换系列的数据标签。

changeDatalabel(): void { 

if (!this.dataLabelEnabled) { // global Var
  this.chart.ref.series[0].update({ dataLabels: { enabled: true } }); // Compile error
  this.dataLabelEnabled = true; // for toggling
} else {
  this.chart.ref.series[0].update({ dataLabels: { enabled: false } }); // Compile error
  this.dataLabelEnabled = false; // for toggling
}

问题是updateMethod在我插入"dataLabels: {enable: true}"时出现编译错误,他正在跳出方法"changeDatalabel()"。

当我使用 updateMethod 获得两个按钮时,编译错误再次出现,但它有效。

createLabel(): void {
this.chart.ref.series[0].update({ dataLabels: { enabled: true } });



deleteLabel(): void {
this.chart.ref.series[0].update({ dataLabels: { enabled: false } });

这是正确类型的问题。您可以在 @types/highcharts 中看到 series.update 第一个参数是 IndividualSeriesOptions 类型,它没有 DataLabels prop.

您可以将选项类型显式设置为 LineChart 类型:

import { LineChart } from 'highcharts';
...

toggleLabel(): void {
  const options: LineChart = {
    dataLabels: {
      enabled: !this.dataLabelEnabled
    }
  }

  this.chart.ref.series[0].update(options);
  this.dataLabelEnabled = !this.dataLabelEnabled;
}

示例:https://stackblitz.com/edit/angular-bmhomi?file=app/highchart-demo/highchart-demo.component.ts