2013-10-16 4 views
0

API로 Google 기둥 형 차트를 그려야합니다. 데이터는 JSON 문자열로 웹 서비스에서 가져 와서 구문 분석 한 다음 데이터를 추가 한 다음 차트를 표시합니다.Google 차트가 표시되지 않고 오류가 표시되지 않습니다.

var jsond = JSON.parse(response.d); 
       var data = null; 

       data = new google.visualization.DataTable(); 
       for (var i = 0; i < jsond["cols"].length; i++) { 
        data.addColumn((jsond["cols"][i].type == 'number' ? 'number' : 'string'), null, jsond["cols"][i].id); 
       } 
       data.addRows(jsond["rows"].length); 
       for (var i = 0; i < jsond["rows"].length; i++) { 
        data.setCell(i, 0, "'" + jsond["rows"][i].finmonth.toString() + "'"); 
        data.setCell(i, 1, parseFloat(jsond["rows"][i].Target)); 
        data.setCell(i, 2, parseFloat(jsond["rows"][i].Proposal)); 
        data.setCell(i, 3, parseFloat(jsond["rows"][i].ContractTotal)); 
        data.setCell(i, 4, parseFloat(jsond["rows"][i].Budget)); 
        data.setCell(i, 5, parseFloat(jsond["rows"][i].flag)); 
       } 

       var options = { 
        title: 'The road thus far', 
        vAxis: { title: "Totals" }, 
        hAxis: { title: "Financial Month" } 
       }; 

       var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
       chart.draw(data, options); 

이제 데이터를 받아들이고 오류가 반환되지 않습니다. 데이터가 data.toJSON()으로로드 된 후 데이터를 검사했으며 Google에서 데이터를 처방하는 방식과 일치시킵니다. 내 데이터에 대해서는 아래를 참조하십시오. 아래 예제에 1 개의 datarow 만 추가 했으므로 12 개의 표준 행이 있습니다.

{"cols":[{"id":"finmonth","label":"","pattern":"","type":"string"}, 
{"id":"Target","label":"","pattern":"","type":"number"}, 
{"id":"Proposal","label":"","pattern":"","type":"number"}, 
{"id":"ContractTotal","label":"","pattern":"","type":"number"}, 
{"id":"Budget","label":"","pattern":"","type":"number"}, 
{"id":"flag","label":"","pattern":"","type":"number"}], 
"rows":[{"c":[{"v":"'2013/1'","f":null},{"v":0,"f":null},{"v":37,"f":null},{"v":4696,"f":null},{"v":4733,"f":null},{"v":0,"f":null}]}], 
"p":null} 

그래서 나는 무엇이 있습니까? 왜냐하면 내가 하드 코드 테스트 데이터를 자바 스크립트 배열에 표시하면 차트가 표시됩니다 .../

답변

0

제 코드에 아무런 문제가 없습니다. 차트가 jquery accordian 내에 있으며 이것이 문제의 원인입니다. 는이 문제를 해결하려면 아코디언이 allready 즉

$('div').accordion(); 

가 호출 된 "창조"된 후에 만 ​​차트를 렌더링합니다. 그런 다음 올바르게 렌더링해야합니다.

관련 문제