Я столкнулся с проблемой с маркировкой штабелированных диаграмм столбцов и столбцов в последних версиях Dojo. Этикетки помещаются в центр столбца/столбца, когда он рисуется от 0, а не от конца предыдущего столбца/столбца. Это означает, что метки часто перекрываются в середине столбца/столбца или отображаются в неправильном разделе столбца/столбца.Dojo Stacked Bars/Обозначение диаграммы столбцов в неправильном положении
Пример: заимствование скрипки JS из этого StackExchange post, чтобы проиллюстрировать проблему: изменить версию Dojo между «1.10.4» и «ночным», и вы увидите метку позиции двигаться.
Я обнаружил причину этой проблемы, функция «ПолучитьЗначение» была удалена из StackedBars и StackedColumn (Dojox \ картирование \ plot2d \ StackedColumn.js) файлы между версиями 1.10.6 и 1.11. 1. Эта функция использовала предыдущее значение столбца/столбца, чтобы отрегулировать положение метки, так как ее теперь отсутствует, этого не происходит.
Я использую API JavaScript ESRI, который включает Dojo 1.11.1. Я попытался скопировать (и изменить) функцию из старой версии додзё, но, похоже, многие другие функции диаграмм изменились, и я не добился успеха в ее работе.
Я до сих пор довольно новичок в JavaScript и Dojo, но все равно добавить эту функцию обратно без изменения файлов в ESRI API?
Неудача, что есть способ ретро-подгонки старой функции к новой версии успешно?
Спасибо!
EDIT: Это содержимое мой модифицированный StackedBars.js:
//>>built
define("dojox/charting/plot2d/StackedBars",["dojo/_base/declare","dojo/_base/lang","./Bars","./commonStacked"],function(c,e,f,d){
return c("dojox.charting.plot2d.StackedBars",f,{
getSeriesStats:function(){
var a=d.collectStats(this.series,e.hitch(this,"isNullValue")),b;
a.hmin-=0.5;
a.hmax+=0.5;
b=a.hmin;
a.hmin=a.vmin;
a.vmin=b;
b=a.hmax;
a.hmax=a.vmax;
a.vmax=b;
return a
},
rearrangeValues:function(a,b,c){
return d.rearrangeValues.call(this,a,b,c)
},
// COPIED THIS FUNCTION FROM 1.10.6
getValue:function(_5,_6,_7,_8){
var y,x;
if(_8){
x=_6;
y=d.getIndexValue(this.series,_7,x,e.hitch(this, "isNullValue"));
}
else{
x=_5.x-1;
y=d.getValue(this.series,_7,_5.x);
y=[y[0]?y[0].y:null,y[1]?y[1]:null];
}
return {x:x,y:y[0],py:y[1]};
}
})});
Мой первоначальный вопрос был с "e.hitch (это, "isNullValue")", я сделал опечатку ,
У меня все еще есть проблема с тем, что это не работает для диаграмм с отрицательными значениями (без ошибок, просто метки не в том месте) и как применить эту функцию без изменения исходных файлов Dojo?
Что вы написали? Какое исключение вы получаете? –
Извините, обновленный вопрос с моим измененным StackedBars.js (StackedColumns используют ту же функцию). Моя первоначальная ошибка была опечаткой, вызванной копированием/вставкой. – AEgman