HighCharts menuItem值未更新

问题描述 投票:0回答:1

当用户选择其他语言时,我需要翻译我的图表。我有一个chartservice,它侦听translationService并将从translationService接收的值分配给chart的downloadCSV属性。这是代码“

private downloadCsvText= '';
this._translateService.get('TL_DOWNLOAD_CSV').subscribe((res: string) => this.downloadCsvText=res);

Highcharts.setOptions({
    global: { useUTC: false },
    lang: {
        noData: this.chartNoData,
        downloadCSV: this.downloadCsvText
    }
});

以及在我创建图表的方法中:

 exporting: {
                filename: 'MyChart',
                buttons: {
                    contextButton: {
                        menuItems: ['downloadCSV']
                    }
                },
                csv: {
                    itemDelimiter: ';'
                },
                fallbackToExportServer: false
            }

但是,在用户更改语言的那一刻,menuItems是唯一未翻译的内容。任何指导表示赞赏。

我正在使用

  • 角度8
  • “ highcharts”:“ 6.1.1”
  • “ highcharts-export-csv”:“ = 1.4.8”,
  • “ highcharts-pattern-fill”:“ 3.0.3”,
highcharts contextmenu angular8 angular2-highcharts menu-items
1个回答
0
投票

当前,您的代码执行的操作类似于本演示中的示例:https://jsfiddle.net/BlackLabel/kL5xahve/-这是错误的,因为在初始化图表之后就定义了选项。

最简单的解决方案是销毁图表并在更改语言后再次对其进行初始化。

演示:https://jsfiddle.net/BlackLabel/wLhxc0qb/

var chartOptions = {

  series: [{
    data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  }],

  exporting: {
    buttons: {
      contextButton: {
        menuItems: ["downloadCSV"]
      }
    },
  }
};

var chart = Highcharts.chart('container', chartOptions);

Highcharts.setOptions({
  lang: {
    downloadCSV: 'test'
  }
});

chart.destroy();

Highcharts.chart('container', chartOptions);
© www.soinside.com 2019 - 2024. All rights reserved.