与YUI中的其他图表(例如折线图)不同,当没有可用数据时,饼图不会显示图表的空白轮廓。相反,根本没有显示 - 只是一个空白区域。
当没有数据可用时,有没有办法让饼图显示?
我正在构建图表以从数据源中提取数据,并以特定间隔进行轮询。
this.chart = new YAHOO.widget.PieChart(id + '_c', this.datasource, {
categoryField: categoryField,
dataField: dataField,
polling: interval * 1000,
wmode: 'opaque',
style: {
background: { color: '#fdfdfd' },
legend: { display: 'right' }
}
});
答案 0 :(得分:0)
我发现这样做的方法是在实时数据源上覆盖一个名为onBeforeCallback的方法。 http://developer.yahoo.com/yui/docs/YAHOO.util.DataSourceBase.html#method_doBeforeCallback
可覆盖的方法使实施者可以访问原始的完整响应和 在数据之前解析的响应(针对给定的模式进行解析) 被添加到缓存中(如果适用),然后发送回回调函数。 这是您访问原始响应和/或填充解析的机会 回复任何自定义数据。
这允许您在将数据发送到图表之前更改数据。如果它是空的,那么我可以添加一个虚拟的“无活动”条目。
this.datasource.doBeforeCallback = function(oRequest, oFullResponse, oParsedResponse, oCallback) {
if (!oParsedResponse.results || oParsedResponse.results.length < 1) {
oParsedResponse.results = new Array({ "name": "No Activity", "count": "0" });
}
return oParsedResponse;
};