Я использую Google Analytics и библиотеку визуализации для создания панели мониторинга для наших чисел аналитики. Он работал хорошо, но начал с перерывами давать мне . Вы вызвали метод draw() с неправильным типом данных, а не с ошибкой DataTable или DataView. Я искал на этом и нашел несколько потоков, которые говорят, что другие люди не могут воспроизвести его или что они неправильно загружают библиотеки. Я изменил мою нагрузку ниже (есть куча разрешения GA и все, что я не показываю здесь. Но это часть все, кажется, работает.)Google visualization datatable intermittent problems
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
...
google.charts.load("current", {packages:["table"]});
google.charts.setOnLoadCallback(getStarted);
...
gapi.client.analytics.data.ga.get(eventsObj).execute(function(results){
var viz = new google.visualization.Table($('#my-table-id'));
var dataTable = new google.visualization.DataTable(results.dataTable);
viz.draw(dataTable,{showRowNumber:true,allowHtml:true});
});
Когда я смотрю на results.dataTable из вызов gapi содержит данные, которые я ожидал бы. Проблема, как представляется, в преобразовании этих результатов в DataTable в этой строке:
var dataTable = new google.visualization.DataTable(results.dataTable);
Когда я получаю сообщение, я не получаю ошибки JavaScript в консоли. Но если я проверю данные, возвращаемые этим вызовом, будет найден массив с именем Ec с нулевой длиной. Когда диаграмма успешна, существует массив с именем ec с длиной 12 (количество результатов, возвращаемых запросом аналитике Google).
Любая идея, что может заставить DataTable (results.dataTable) некорректно работать некорректно?
пример, указанный в [Конструктор класса таблицы данных] (https://developers.google.com/chart/interactive/docs/reference#constructor_1) показывает формат данных для инициализации таблицы - можете ли вы поделиться образцом из 'results.dataTable'? – WhiteHat
Я вижу это с помощью инструментов отладки. Данные поступают из встроенного api для Google Analytics. Похоже, что он выполняет структуру - объект с массивами cols и rows, которые содержат объекты с соответствующими значениями. – Rothrock
Проблема заключается в том, что второй раз через новый google.visualization.DataTable() фактически не создает экземпляр DataTable. Не знаю, почему. – Rothrock