비동기 적으로로드 할 때 amcharts.ready가 준비되지 않았습니다
-
20-12-2019 - |
문제
초기에 Amcharts.Ready에서 모든 Amchart Configs를 넣습니다.
<script src="amcharts/amcharts.js" type="text/javascript"></script>
<script src="amcharts/serial.js" type="text/javascript"></script>
<script>
AmCharts.ready(function() {
console.log("this works");
/* Other configs */
})
</script>
.
어쨌든 amcharts가 requirejs를 충족하는 relcharts-meets-requirejs/"hr> "> Amchart.Ready의 콜백 내부의 코드는 실행되지 않습니다.(이상하게 디버깅 중에 한 번 실행)
해결책
몇 가지 테스트 후 Amchart.Ready는 윈도우로부터 윈도우를 실행하기 위해 나중에 팝업 된 onReadyArray
로 콜백을 푸시합니다.즉, amchart가 window.onload 이벤트 이후로드되면 Amchart.Ready는 쓸모가 없습니다.내 해결 방법은 다음과 같습니다.
<script>
configChart = function() {
/* Create charts stuff */
};
if (AmCharts.isReady) {
configChart();
} else {
AmCharts.ready(configChart);
}
</script>
. 다른 팁
는 여전히 최신 버전 (현재 버전 3.14.1)에서 작동하지 않지만 수동으로 handleLoad
메서드를 호출하는 수정 사항은 다음과 같습니다.
AmCharts.handleLoad();
.
여러 번 호출하는 것은 해를 끼치 지 않습니다.
차트를 비동기 적으로로드하기 때문에 "Amcharts.IsReady= True"를 수동으로 설정해야했습니다.내 Amcharts 기능을 호출하기 전에.예 :
var chartData1 = [];
function generateChartData() {
...
}
function createStockChart() {
...
}
if ($('.amChartDivExists').length > 0) {
AmCharts.isReady = true;
generateChartData();
createStockChart();
}
. 제휴하지 않습니다 StackOverflow