有没有办法设置Fusionchart图表"数据"仅限物业。因为当前在后一阶段设置数据时,需要传递包含" data"和"图表"属性。
以下是我的示例代码;
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外观与数据源分开。
任何想法?
答案 0 :(得分:3)
我在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
)。