ColdFusion 10,如何通过JavaScript API方法传递动态变量?

ColdFusion 10,如何通过JavaScript API方法传递动态变量?,javascript,coldfusion,coldfusion-10,cfchart,Javascript,Coldfusion,Coldfusion 10,Cfchart,我在ColdFusion 10(zingcharts)中使用标签。包含图表的页面正在通过websocket接收数据,我正在尝试使用JavaScript定期将其中一些数据传递给图表,使用: var x = data.number; var handle = ColdFusion.Chart.getChartHandle(); handle.exec('mychart', 'appendseriesvalues', '{"plotindex": 0, "values": [x]}'); 例如,如果

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

var x = data.number;
var handle = ColdFusion.Chart.getChartHandle();
handle.exec('mychart', 'appendseriesvalues', '{"plotindex": 0, "values": [x]}');
例如,如果我输入一个实际数字而不是
x
,则上述代码可以正常工作
“值”:[1.1]
工作正常。但是,如果我尝试通过动态变量传入一个数字,它将不起作用并抛出以下错误:

SyntaxError: JSON.parse: unexpected character

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

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

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

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

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

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

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

在@PeterBoughton的回答/评论之后。因此,是的,您可以传递一个对象,而不是一个对象的JSON表示(基于该页面上的代码示例)。这将是一个更好的办法


直接和ZingCharts和
混在一起。。。我发现做后者要容易得多,并且从等式中完全删除
。成为
方面的专家并没有什么好处(这不是一项可销售的技能),而直接舒适地使用Javascript库(如果不特别是ZingCharts)是一个更好的工具。因此,是的,您可以传递一个对象,而不是一个对象的JSON表示(基于该页面上的代码示例)。这将是一个更好的办法


直接和ZingCharts和
混在一起。。。我发现做后者要容易得多,并且从等式中完全删除
。成为
方面的专家并没有什么好处(这不是一项可销售的技能),而直接舒适地使用Javascript库(如果不特别是ZingCharts)是一个更好的工具。

非常好,非常感谢Peter!!我正在拔头发…非常感谢。没问题。可能可以直接传入一个对象(不是字符串),然后您可以执行
handle.exec(…,{“plotindex”:0,“values”:[x]})
,但我不知道cfchart是否可以这样工作。非常好,非常感谢Peter!!我正在拔头发…非常感谢。没问题。可能可以直接传入一个对象(不是字符串),然后您可以执行
handle.exec(…,{“plotindex”:0,“values”:[x]})
,但我不知道cfchart是否可以这样工作。我建议不要在ColdFusion 10中使用
cfchart
。我已经对这个功能做了很多研究,我发现直接使用ZingCharts实际上比使用ColdFusion 10中的实现更容易——特别是在图表的格式和样式方面。我建议不要在ColdFusion 10中使用
cfchart
。我已经对这个功能做了很多研究,我发现直接使用ZingCharts比使用ColdFusion 10中的实现更容易,尤其是在图表的格式和样式方面。