2017-11-23 4 views
0

私はchart.jsを使用するグラフを作成する関数を使用しています。 残念ながら、私がchart.destroy()を呼び出そうとすると、エラーが発生します。function - chart.destroy()内に作成されたグラフが関数ではない場合、chart.jsを破棄していません

"chart.destroy()は関数ではありません"。

var chart = {}; 
    createChart(x_axis_data, y_axis_data, chart); //Function creating chart 

をチャート自体は、次のと関数の内部で作成されます:

chart = new Chart(document.getElementById(id),{.... 

チャートが正常に作成され 私のコードは、次のようになります。しかし、私はchart.destroyを呼び出すことによってグラフをdelteできません。 私はすでに使用しようとしました

window.chart.destroy() 

+0

ある機能に対してローカルではなく、グラフをグローバルに保持する変数を作成します。 jQueryを使用している場合は、ターゲットの ''要素に '.data(" chart ")'を使用して、既存のChartインスタンス(存在する場合)を取得できます。 – Pointy

+0

私の変数はすでにグローバルであるべきではないですか?私は関数を呼び出す前にそれを作成し、関数に渡します。 – JayJay

答えて

1

の暗黙的な関数に頼るのではなく、window.chart =を設定します。コードでstrictモードを使用していた場合は、警告が表示されます。

+0

私はまだ種類があります:window.chart.destroyは関数ではありません – JayJay

+1

私は間違いを発見しました。私は使用するのを忘れました:私の関数の中のwindow.chart – JayJay

関連する問題