2013-08-30 3 views
1

cfchart 태그는 ColdFusion 10 (zingcharts)에서 사용하고 있습니다. 내가 대신 실제 번호를 입력하면ColdFusion 10 CFCHART, JavaScript API 메소드를 통해 동적 변수를 전달하는 방법은 무엇입니까?

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

위의 코드는 잘 작동 : 사용하여 차트를 포함하는 페이지가 웹 소켓을 통해 데이터를 수신하고 나는 JavaScript를 정기적으로 차트에이 데이터의 일부를 통과하는 것을 시도하고있다 x인데, 예를 들어 "values": [1.1]과 같이 잘 작동합니다. 나는 시도하고 동적 변수의 방법으로 숫자를 전달하지만 경우, 그것은 작동이 오류가 발생하지 않습니다 사람이 알고 있다면 궁금 해서요

SyntaxError: JSON.parse: unexpected character 

방법이 작업을 수행 할 수 있습니까?

+0

나는 ColdFusion 10에서'cfchart'를 사용하지 말 것을 제안합니다. 저는이 기능으로 꽤 놀았습니다. 실제로 ColdFusion 10에서 구현을 사용하는 대신 ZingChart를 직접 사용하는 것이 실제로 쉽습니다. 특히 차트의 서식을 지정하고 스타일을 지정합니다. –

답변

3

JSON 문자열을 handle.exec에 전달합니다. handle.exec은 x 변수가 정의 된 다른 위치에서 JS 객체로 변환되어 오류를 발생시킵니다.

대신, 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>의 전문가가되면 얻는 이득이 적습니다 (시장성이있는 기술이 아닙니다). 반면에 자바 스크립트 라이브러리를 직접 (특히 ZingCharts가 아닌 경우) 편안하게 사용하는 것이 더 나은 도구입니다.