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數組來查看是否有錯誤,但一切似乎都很好。有任何想法嗎?

回答

0
+0

這並沒有直接幫我回答我的問題,但它確實幫助我確定什麼是錯的。 我試着從代碼中使用更新函數,只是發現它從來沒有接受我的數據數組中的值,只有標籤。我的理論:因爲我從一個字符串轉換數組,每個項目的值也是一個字符串。添加了一個額外的行將其轉換回整數,現在它的工作原理!謝謝,我從來沒有想過沒有這個例子:) –

+0

這個答案只是一個鏈接 - 和一個404頁面。請在答案中包含鏈接內容的詳細信息,以便在鏈接死亡的情況下,其他用戶可以獲得某些使用。 http://meta.stackexchange.com/questions/72000/should-there-be-a-policy-about-one-link-only-answers – Mark

相關問題