Google Chart: исправить ошибку Uncaught (в обещании):

1

используя диаграмму google, я построил линейную диаграмму, подобную этой.

На графике я создал настраиваемый подсказку, как показано в jfiddle. В приведенном выше графике нет проблем с отображением диаграммы с подсказкой инструмента.

Извлечение данных диаграммы из db. Основываясь на некоторых данных диаграммы, я не могу отобразить диаграмму из-за некоторых js erros.

в приведенном ниже примере я изменил данные диаграммы, и график не дублируется из-за js erros в строке 57 кода jfidle

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

  function toolTipVal(dt, row, index1, index2) {           
                 label1 = dt.getColumnLabel(index1).split("\n");
                 label2 = dt.getColumnLabel(index2).split("\n");
                 yValue1 =0; yValue2 =0;           
                  if (dt.getValue(row, index1) === null ) {
                    yValue1 = dt.getFormattedValue(row -1, index1);               
                  } 
                  else {
                    yValue1 = dt.getFormattedValue(row, index1);                  
                  }            
                  if (dt.getValue(row, index2) === null) {
                    if (row > 0) {
                      yValue2 = dt.getFormattedValue(row - 1, index2);
                    }
                  } else {
                    yValue2 = dt.getFormattedValue(row, index2);
                  }              
                  return [yValue1, yValue2, label1, label2];
          }; 

Если я использую второй набор данных в jfiddle, я получаю следующую ошибку js

 jsapi_compiled_default_module.js:74 Uncaught (in promise) Error: Invalid row index -1. Should be in the range [0-799] in above methodline

yValue1 = dt.getFormattedValue(row -1, index1); из-за этого графика не отображается в пользовательском интерфейсе.

Как я могу изменить описанный выше метод на основе данных данных диаграммы

  • 1
    Это говорит вам, что вы не можете использовать отрицательное значение строки. row - 1 , вероятно, производит -1 когда row равен 0 .
  • 1
    просто добавьте -> if (row > 0) { - перед установкой yValue1 - так же, как чуть ниже для yValue2
Теги:
google-visualization

1 ответ

1

row - это нулевое индексированное значение. Ты звонишь

yValue1 = dt.getFormattedValue(row -1, index1);

без проверки, если row не первая.

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

Вы будете получать это исключение каждый раз, когда

dt.getValue(row, index1) === null

это правда для row == 0.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню