최신 버전의 Dojo에서 스택 막대 및 열 차트의 레이블링 문제가 발생했습니다. 레이블은 이전 막대/열의 끝에서가 아니라 0부터 그려 지므로 막대/열의 가운데에 배치됩니다. 즉, 레이블은 바/열의 가운데에 겹치거나 바/열의 잘못된 섹션에 나타납니다.잘못된 위치에 Dojo 스택 막대/열 차트 표시
예 :이 StackExchange post에서 JS 바이올린을 대출하는 문제를 설명하기 위해 "야간" "1.10.4"사이의 도장 버전을 변경하고 위치를 이동 라벨을 볼 수 있습니다.
나는이 문제에 대한 이유를 찾았는 "GetValue"기능은 StackedBars에서 제거 된 StackedColumn (DojoX는 \ 차트 \ plot2d \ StackedColumn.js) 버전 1.10.6과 1.11 사이에 파일을 저장합니다. 1. 이 함수는 이전 막대/열 값을 사용하여 레이블 위치를 조정합니다.
Dojo 1.11.1이 포함 된 ESRI JavaScript API를 사용하고 있습니다. 이전 버전의 도장에서 함수 복사 및 수정을 시도했지만 다른 많은 차트 함수가 변경된 것으로 보이며 제대로 작동하지 못했습니다.
저는 아직 JavaScript와 Dojo가 새로 도입되었지만 어쨌든 ESRI API에서 파일을 수정하지 않고이 기능을 다시 추가 할 예정입니까?
실패 이전 버전의 기능을 최신 버전에 성공적으로 다시 끼워 넣을 수 있습니까?
감사합니다!
편집 : 이것은 내 수정 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