1

googledrawVisualizationAPIを使用したいのですが。例:

 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]
  ]);

私のバージョンは、他のgoogle apiによって要素を取得し、それらを結合し、変数をとの間に配置した後([])例のようになります。

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;

しかし、それは機能しません。なんで?

4

1 に答える 1

2

2つの提案。

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));

お役に立てば幸いです。

于 2010-04-25T14:19:08.180 に答える