Передать динамические переменные в настройках в Google Charts - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь передать номер серии в опции Google Chart через переменную. Однако он не принимает его как переменную, а принимает его как строку. На рисунке 1 видно, что я передал в параметре Series параметр SecondseriesColumnNumber в качестве переменной со значением 1.

Изображение 1 Image 1

Однако в выводе он рассматривает его как строку, а не как номер серии, как показано ниже

Изображение 2

enter image description here

Другие параметры учитывают значения правильно, но не рядовые. Как я могу сделать эту работу? Мой код ниже

var options = {
    title: title,
    width: width,
    height: height,
    bar: { groupWidth: '75%' },
    chartArea: { left: "8%", right: "8%", top: "10%", width: "100%", height: "75%" },
    backgroundColor: 'transparent',
    tooltip: { textStyle: { color: 'black' }, isHtml: true },
    isStacked: isStacked,
    seriesType: seriesType,
    series: { SecondseriesColumnNumber: { type: SecondseriesType } },
    hAxis: { slantedText: true }
};

var chart = new google.visualization.ComboChart($('DivSeries')[0]);

1 Ответ

0 голосов
/ 17 января 2019

проблема связана с синтаксисом JavaScript.
вы не можете использовать переменную в качестве ключа в определении объекта.
сначала вы должны создать объект, затем вы можете добавить дополнительные ключи, используяпеременные.

есть два способа получить / установить значения ключей объекта, как только объект определен.
оба из следующих возвращают одно и то же значение для заголовка.

var title = options.title;
var title = options['title'];

, где, как и в последнем случае, мы можем подставить переменную для ключа заголовка.

var key = 'title';
var title = options[key];

в этом случае, при необходимости, определить статические параметры.

var options = {
    title: title,
    width: width,
    height: height,
    bar: { groupWidth: '75%' },
    chartArea: { left: "8%", right: "8%", top: "10%", width: "100%", height: "75%" },
    backgroundColor: 'transparent',
    tooltip: { textStyle: { color: 'black' }, isHtml: true },
    isStacked: isStacked,
    seriesType: seriesType,
    series: {},
    hAxis: { slantedText: true }
};

тогда вы можете использовать переменную для дальнейшего определения опции серии.

var SecondseriesColumnNumber = 1;
options.series[SecondseriesColumnNumber] = { type: SecondseriesType };
...