2013-08-30 53 views
1

我在ColdFusion 10(zingcharts)中使用cfchart標籤。含圖表的頁面通過WebSocket的接收數據,我想一些這方面的數據傳遞到在使用JavaScript定期圖表,使用:如果我輸入實際數量,而不是ColdFusion 10 CFCHART,如何通過JavaScript API方法傳遞動態變量?

var x = data.number; 
var handle = ColdFusion.Chart.getChartHandle(); 
handle.exec('mychart', 'appendseriesvalues', '{"plotindex": 0, "values": [x]}'); 

上面的代碼工作正常x,例如 "values": [1.1]工作正常。但是,如果我試圖通過一個動態變量的方式在一些傳球,這是行不通的,並拋出這個錯誤:

SyntaxError: JSON.parse: unexpected character 

我不知道是否有人知道如何做到這一點?

+0

我建議不要在ColdFusion 10中使用'cfchart'。我已經使用了這個功能,我發現它直接使用ZingCharts更容易,而不是在ColdFusion 10中使用實現 - 尤其是當它來格式化和設計圖表樣式。 –

回答

3

你正在傳遞一個JSON字符串給handle.exec,它會變成一個JS對象與你的x變量定義在不同的地方,從而導致錯誤。

相反,令x被解析爲字符串的一部分,它應該工作:

handle.exec(... , '{"plotindex": 0, "values": ['+x+']}'); 
+0

非常好,非常感謝那個彼得!我拉着我的頭髮......非常感謝。 – AlanJames

+1

沒問題。它可以直接傳遞一個對象(不是字符串),然後你可以執行'handle.exec(...,{「plotindex」:0,「values」:[x]})'但是我不'不知道cfchart的工作是否如此。 –

4

從@ PeterBoughton的答案/評論,在ZingCharts API is really well documented繼。所以,是的,您可以傳遞一個對象而不是一個JSON表示(基於該頁面上的代碼示例)。這將是一個更好的方法。

<cfchart>和ZingCharts直接混在一起...我發現後者更容易,並從方程中刪除<cfchart>。在成爲<cfchart>專家(這不是一個可銷售的技能)方面沒有什麼收穫,而直接使用Javascript庫(如果不是特別的ZingCharts)是一個更好的工具。