Показывать круговую диаграмму YUI, если в источнике данных не возвращены данные - PullRequest
0 голосов
/ 27 июня 2011

В отличие от других диаграмм в 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' }
        }
    });

1 Ответ

0 голосов
/ 28 июня 2011

Я нашел способ сделать это - переопределить метод 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;
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...