amcharts.readyは非同期的にロードされたときに準備ができていません

StackOverflow https://stackoverflow.com//questions/25012775

  •  20-12-2019
  •  | 
  •  

質問

最初はamcharts.ReadyですべてのAmchart Configを置きます。すべてがうまくいった。

<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>
.

どういうわけか refollownoreferrer"> AmChartsにrequirejsを満たす。amchart.Readyのコールバック内のコードは何でも実行されません。(デバッグ中に1回実行されました)

役に立ちましたか?

解決

いくつかのテストの後、Amchart.Readyを実現しました。言い換えれば、window.onloadイベントの後にAMCHARTがロードされている場合は、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();
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top