有没有办法只设置Fusionchart图形的“数据”属性。因为目前在后期设置数据时,需要传递同时具有" data“和"chart”属性的完整json对象。
下面是我的示例代码;
FusionCharts.ready(function () {
var ageGroupChart = new FusionCharts({
id: 'total-users',
type: 'pie2d',
renderAt: 'chart-container',
width: '450',
height: '300',
dataFormat: 'json',
"chart": {
"caption": "Sample Graph",
"enableSmartLabels": "0",
"showPercentValues": "1",
"showTooltip": "0",
"decimals": "1",
"theme": "ocean"
},
"data":null
});
ageGroupChart.setJSONUrl( "http://www.example.com/GetData.php" );
ageGroupChart.render();
});正如您所看到的,我正在设置来自在线来源的数据。如果在线来源不需要将“图表”属性与数据一起发送,我会更喜欢。这样我就可以把UI的外观和感觉从数据源中分离出来。
有什么想法吗?
发布于 2014-08-26 17:41:39
我通过XLMhttpRequest调用使用了以下函数:
function updateChart(data) {
var jsonData = {
"chart": {
// Some rendering options
"caption": caption,
"subcaption": ""
},
"data": data
};
// First time I initialize my chart
if (FusionCharts("myChartId") === undefined) {
var chart = new myChartId({
// Some rendering options
swfUrl: "Charts/MSLine.swf",
id: "myChartId",
width: "100%",
height: "280px",
dataFormat: 'json'
});
chart.setJSONData(jsonData);
chart.render("myContainerId");
} else
// Then I just update
FusionCharts("myChartId").setJSONData(jsonData);
}我在成功回调中调用了updateChart函数:
success: function(data, request) {
try {
var d = JSON.parse(data);
updateChart(d.chart);
// Other job...
var event = new CustomEvent("dataReceivedFromAjax", {"detail": d});
document.dispatchEvent(event);
} catch (e) {
window.console.warn("Wrong format JSON data received");
window.console.warn(data);
}
}当然,您可以根据您的情况调整我的代码(例如,我使用JsonData而不是JsonUrl)。
https://stackoverflow.com/questions/25502132
复制相似问题