Отсутствует легенда диаграммы Dojo 1.5.0

Я только что обновился с Dojo 1.4.3 до 1.5.0 и заметил, что моя легенда теперь отсутствует. У кого-то еще есть такая проблема??

Я продолжаю получать следующую ошибку:

o не определено в строке 73 dojo.js

Эта ошибка возникает, когда

диаграмма1.рендер(); //График отображается, но ошибка приводит к тому, что остальная часть кода в этой функции javascript не выполняется (таким образом, не легенда, поскольку она создается после chart1.render(); line.

выполняет. Отлично работает в релизе 1.4.3.


person GoinOff    schedule 28.07.2010    source источник


Ответы (2)


Работают ли тесты графиков для вас? Перейдите на страницу Тесты Dojo Nightly Charting и выберите тест, в котором используется Подсказки, например, test_event2d.html. Если это работает для вас, посмотрите, что отличается в вашей настройке. Если вы обнаружили разницу, и она связана с Dojo, сообщите об ошибке. Не забудьте указать браузер, который вы используете, и прикрепить минималистичный тестовый пример в виде файла.

person Eugene Lazutkin    schedule 28.07.2010
comment
Да, тестовая страница у меня работает. Мой код взрывается на chart1.render(), а не на коде всплывающей подсказки. Я постараюсь сузить его, чтобы увидеть, в чем разница. Я скоро отчитаюсь. - person GoinOff; 29.07.2010
comment
Подробнее о проблеме читайте в моем посте выше. - person GoinOff; 30.07.2010

Проблема обнаружена.. Похоже на ошибку, но не уверен на 100%... Вот как воссоздать ее с помощью кода Dojo Nightly Charting Tests и dojo версии 1.5.0 (любой веб-браузер):

ПРИМЕЧАНИЕ. Эта ошибка возникает при добавлении ряда для построения "другого" и вызове chart1.render(); больше чем единожды. Если chart1.render(); вызывается только один раз, ошибок нет и все работает как надо. См. addSeries для "Серии B"... Удалите plot: "other" из "Серии B", и все будет работать нормально, даже если chart1.render() вызывается дважды. Эту проблему также можно воссоздать, просто удалив «markers: true» из «по умолчанию» addPlot и вызвав char1.render(); дважды.

Предупреждение. HTML-код ниже в разделе кода не отображается на 100% правильно, но присутствует весь код javascript, чтобы легко воссоздать эту проблему.

Евгений: Спасибо за ссылку на страницу тестирования, она помогла. Кроме того, я должен подать отчет об ошибке по этому поводу ??


    




Event 2D

 @import "dojo-release-1.5.0/dojo/resources/dojo.css";
 @import "dojo-release-1.5.0/dijit/tests/css/dijitTests.css";




.dojoxLegendNode {border: 1px solid #ccc; margin: 5px 10px 5px 10px; padding: 3px}
.dojoxLegendText {vertical-align: text-top; padding-right: 10px}




dojo.require("dojox.charting.Chart2D");
dojo.require("dojox.charting.themes.PlotKit.green");

dojo.require("dojox.charting.action2d.Highlight");
dojo.require("dojox.charting.action2d.Magnify");
dojo.require("dojox.charting.action2d.MoveSlice");
dojo.require("dojox.charting.action2d.Shake");
dojo.require("dojox.charting.action2d.Tooltip");

dojo.require("dojox.charting.widget.Legend");

dojo.require("dojo.colors");
dojo.require("dojo.fx.easing");

var dc = dojox.charting;

var dur = 450;
var chart1;

makeObjects = function(){
 chart1 = new dc.Chart2D("test1");
 //chart1.setTheme(dc.themes.PlotKit.green);
 chart1.addPlot("default", {type: "Default", lines: true, markers: true, tension:2});
        chart1.addPlot("other",  {type: "Lines",
    hAxis: "other x",
    vAxis: "other y"
   });
 chart1.addPlot("grid",  {type: "Grid",
             hMajorLines: true,
           hMinorLines: false,
           vMajorLines: true,
           vMinorLines: false
   });
 chart1.addAxis("x", {min: 0, max: 6, majorTick: {stroke: "black", length: 3}, minorTick: {stroke: "gray", length: 3}});
 chart1.addAxis("y", {vertical: true, min: 0, max: 10, majorTick: {stroke: "black", length: 3}, minorTick: {stroke: "gray", length: 3}});
 chart1.addAxis("other x", {leftBottom: false, min: 0, max: 6, majorTick: {stroke: "black", length: 3}, minorTick: {stroke: "gray", length: 3}});
 chart1.addAxis("other y", {leftBottom: false, vertical: true, min: 0, max: 10, majorTick: {stroke: "black", length: 3}, minorTick: {stroke: "gray", length: 3}});
 chart1.addSeries("Series A", [{x: 0.5, y: 5}, {x: 1.5, y: 1.5}, {x: 2, y: 9}, {x: 5, y: 0.3}]);
 chart1.addSeries("Series B", [{x: 0.3, y: 8}, {x: 4, y: 6, tooltip: "Custom tooltip"}, {x: 5.5, y: 2}], {plot: "other"});
 var anim1a = new dc.action2d.Magnify(chart1, "default");
 var anim1b = new dc.action2d.Tooltip(chart1, "default");
 chart1.render();
 chart1.render();
 var legend1 = new dojox.charting.widget.Legend({chart: chart1, horizontal: false}, "legend1");

};

dojo.addOnLoad(makeObjects);




Событие 2D

Go

-->

Наведите указатель мыши на маркеры, полосы, столбцы, фрагменты и т. д.

1: маркеры, линии, 2D-данные, пользовательская ось. Действия: Увеличение, Подсказка.

Это все Народ!

person GoinOff    schedule 30.07.2010
comment
Я думаю, тебе следует. По крайней мере, вы можете прикрепить полный HTML-файл к отчету об ошибке. - person Eugene Lazutkin; 01.08.2010