2017-04-17 10 views
1

私はハイチャートでカスタムボタンを使用して表示する2つの配列を持っています:日と週。ハイチャートで新しいデータを元のデータに戻す方法は?

グラフをリセットして元のデータを表示するにはリセットボタンが必要ですが、私の問題はこの特定の配列(original_data)のレンダリングに失敗したことです。

この問題の原因は何か、それをどのように並べ替えることができますか?

は、あなたが設定オブジェクトにoriginal_dataを渡さ

JSFiddle

original_data = [1, 2, 3, 4, 5]; 
new_data1 = [6, 7, 6, 7, 6]; 
new_data2 = [15, 14, 13, 12, 11]; 

var mychart = Highcharts.chart('container', { 
    series: [{ 
      name: 'Total', 
      data: original_data, 
      type: 'area' 
     } 
     ], 
    exporting: { 
      buttons: { 
       first_Button: { 
        text: 'Day', 
        onclick: function() { 
         mychart.series[0].setData(new_data1); 
        } 
       }, 
       second_Button: { 
        text: 'Week', 
        onclick: function() { 
         mychart.series[0].setData(new_data2); 
        } 
       }, 
       third_Button: { 
        text: 'Reset', 
        onclick: function() { 
         mychart.series[0].setData(original_data); 
        } 
       } 
      } 
     } 
}); 

答えて

1

、ありがとうございます。今すぐあなたがsetData(new_data)を呼び出すたびに、original_dataを上書きすると、参照として機能します。だから、

あなたのように見える、バックグラウンドで「週」ボタンをクリックします:ソリューションは、構成オブジェクトにoriginal_dataのクローンを渡すことです

original_data = new_data2;

を。 例:JSFiddle

+0

ありがとう、私は 'setData()'が元の配列を書き換えているとは思っていませんでした。完璧に動作します! – Florent