1

我在 ColdFusion 10 (zingcharts) 中使用cfchart标签。包含图表的页面正在通过 websocket 接收数据,我正在尝试使用 JavaScript 定期将其中一些数据传递给图表,使用:

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

我想知道是否有人知道如何做到这一点?

4

2 回答 2

4

继@PeterBoughton 的回答/评论之后,ZingCharts API确实有据可查。所以,是的,您可以传递一个对象而不是一个对象的 JSON 表示(基于该页面上的代码示例)。那将是一种更可取的方法。

直接弄乱了<cfchart>ZingCharts ......我发现后者更容易,并且<cfchart>完全从等式中删除。成为专家<cfchart>(这不是一项有市场的技能)几乎没有什么收获,而直接使用 Javascript 库(如果不是特别是 ZingCharts)是一个更好的工具。

于 2013-08-31T14:59:00.763 回答
3

您将 JSON 字符串传递给 handle.exec,该字符串在与定义 x 变量的位置不同的位置转换为 JS 对象,从而导致错误。

相反,让 x 被解析为字符串的一部分,它应该可以工作:

handle.exec( ... , '{"plotindex": 0, "values": ['+x+']}');
于 2013-08-30T11:29:24.903 回答