Struts 2 JQuery данные диаграммы загрузки данных с локальными данными

Я хочу загрузить данные диаграммы с локальными данными.

 <sjc:chart
       id="chartPlaceHolder"
       cssStyle="width: 600px; height: 400px;"
       pie="true"
       pieLabel="true"
       dataType="local"        
   />

Затем я использовал (как упоминалось в Обновить / Обновить Flot In Javascript)

//This data is created dynamically from a grid when grid completed 
var chartData= [
                { label: "Chrome",  data: 36.3, color: "#89A54E"},
                { label: "Other",  data: 0.8, color: "#3D96AE"}
            ];
var plot = $.plot($('#chartPlaceHolder'));
    plot.setData(chartData);
    plot.setupGrid();
    plot.draw();

Я получаю исключение jquery aB is undefined в API jquery

Любые комментарии?!

1 ответ

Решение

Вам не хватает двух дополнительных параметров для $.plot(),

Вы должны прочитать основное использование.

Создайте заполнитель div, чтобы поместить график в:

<div id="placeholder"></div>

Вам нужно установить ширину и высоту этого div, иначе библиотека графика не знает, как масштабировать график. Вы можете сделать это встроенным, как это:

<div id="placeholder" style="width:600px;height:300px"></div>

Вы также можете сделать это с помощью внешней таблицы стилей. Убедитесь, что заполнитель не находится внутри чего-либо с отображаемым свойством: отсутствует свойство CSS - в этом случае у Flot возникают проблемы с измерением размеров надписей, что приводит к искаженному виду, и может возникнуть проблема с измерением размеров заполнителей, что является фатальным (оно выдает исключение).

Затем, когда div готов в DOM, который обычно готов к документу, запустите функцию plot:

$.plot($("#placeholder"), data, options);

Здесь данные - это массив рядов данных, а параметры - это объект с настройками, если вы хотите настроить график. Посмотрите на примеры некоторых идей о том, что вставлять, или посмотрите на ссылку API. Вот быстрый пример, который нарисует линию от (0, 0) до (1, 1):

$.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });

РЕДАКТИРОВАТЬ:

Вы можете попробовать ниже код. Это перезагрузка диаграммы с данными после того, как диаграмма была создана без данных.

<sjc:chart
    id="placeholder"
    cssStyle="width: 600px; height: 400px;"
    pie="true"
    pieLabel="true">
</sjc:chart>
<script>
  $(function(){
    var chartData= [
      { label: "Chrome",  data: 36.3, color: "#89A54E"},
      { label: "Other",  data: 0.8, color: "#3D96AE"}
    ];
    var series =  { pie: { show: true }};
    var o = {};
    o.data = chartData;
    o.series= series;
    $.struts2_jquery_chart.chart($("#placeholder"), o);
  });
</script>
Другие вопросы по тегам