jquery google визуальные строки данных API-графа не работает - PullRequest
1 голос
/ 25 апреля 2010

Я бы хотел использовать API Google DrawVisualization. Пример:

 var data = new google.visualization.DataTable();
  data.addColumn('string');
  data.addColumn('number');
  data.addRows([
    ['a', 14],
    ['b', 47],
    ['c', 80],
    ['d', 55],
    ['e', 16],
    ['f', 90],
    ['g', 29],
    ['h', 23],
    ['i', 58],
    ['j', 48]
  ]);

Моя версия получает элементы от другого API Google, присоединяется к ним, а затем помещает переменную между ([ и ]), как в примере.

var outputGraph = [];

for (var i = 0, entry; entry = entries[i]; ++i) {

var asd = [
entry.getValueOf('ga:pageTitle'),
entry.getValueOf('ga:pageviews')
].join("',");
outputGraph.push(" ['" + asd + "]");
//get the 2 elements and join them to be like ['asd', 2], 

}
// this is fine, the outputgraph is like ['asd', 2], ['asd', 2], ['asd', 2] as seen in the example

var outputGraphFine = ("(["+outputGraph+"])");
// i suggest this is which fails the script.

var data = new google.visualization.DataTable();
 data.addColumn('string', 'Task');
 data.addColumn('number', 'Hours per Day');
 data.addRows = outputGraphFine;

Но это не работает. Почему?

1 Ответ

2 голосов
/ 25 апреля 2010

Два предложения.

1 - Согласно документации , addRows() вызывается так:

data.addRows([
  ['Work', 11],
  ['Eat', 2],
  ['Commute', 2],
  ['Watch TV', 2],
  ['Sleep', {v:7, f:'7.000'}]
]);

so data.addRows = outputGraphFine; ошибочно с самого начала.

2 - outputGraphFine - строка, а addRows() ожидает объект. Чтобы преобразовать строку, хранящуюся в переменной, в объект, вам нужно указать Javascript интерпретировать ее в режиме анализа выражения (другими словами, оценивать ее как код ):

data.addRows(eval(outputGraphFine));

Надеюсь, это поможет.

...