2
我正在用Titanium Studio製作應用程序,並嘗試使用webView和Google Charts來可視化一些數據。的數據是在一個二維陣列,像這樣:Google Charts不顯示數據
[["Tendency","Number of Answers"],["Item one", 2],["Item two", 5]]
這是我使用來傳遞數據的代碼:
function Graph(data){
var chart = Ti.UI.createWebView({
url: "/results.html",
width: Ti.UI.SIZE,
height: "auto",
top: 110
});
for (var i=0, l=data.length; i<l; i++){
if (data[i] instanceof Array) data[i] = data[i].join(";");
}
var syndata = data.join("@");
chart.addEventListener('beforeload',function(e){
chart.evalJS("var syndata ='"+syndata+"';");
});
this.chart = chart;
return;
};
module.exports = Graph;
我試圖傳遞不同種類的數據,並發現它因此我將數組轉換爲一個字符串 「Tendecy;答案數@ Item1; 2 @ ....」 在results.html中,我將它再次轉換爲一個數組,並將其讀入圖表:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
var dt = syndata.split("@");
for(var i = 0, l = dt.length; i<l; i++) dt[i] = dt[i].split(";");
google.load("visualization", "1", {packages:["corechart"]});
function drawChart(d) {
var data = google.visualization.arrayToDataTable(d);
var options = {
title: 'Overview',
chartArea:{left:5,top:5,width:"100%",height:"100%"}
};
var chart = new google.visualization.PieChart(document.getElementById('chart'));
chart.draw(data, options);
}
google.setOnLoadCallback(function(){ drawChart(dt) });
</script>
但是,我只收到一個灰色圖表,其中一個項目顯示爲「其他」。當我直接將數組粘貼到文件和引用中時,它工作正常......我試着直接從results.html輸出Ti.API.info數組來查看是否有錯誤,但一切似乎都很好。有任何想法嗎?
這並沒有直接幫我回答我的問題,但它確實幫助我確定什麼是錯的。 我試着從代碼中使用更新函數,只是發現它從來沒有接受我的數據數組中的值,只有標籤。我的理論:因爲我從一個字符串轉換數組,每個項目的值也是一個字符串。添加了一個額外的行將其轉換回整數,現在它的工作原理!謝謝,我從來沒有想過沒有這個例子:) –
這個答案只是一個鏈接 - 和一個404頁面。請在答案中包含鏈接內容的詳細信息,以便在鏈接死亡的情況下,其他用戶可以獲得某些使用。 http://meta.stackexchange.com/questions/72000/should-there-be-a-policy-about-one-link-only-answers – Mark