2016-04-01 11 views
0

を変更し、最終的に新しい点をプロットします。しかし、データが変更され、最初に置かれるはずの新しいポイントが最後にプロットされます。これにより、エンドポイントとスタートポイントが接続されます。FLOTチャートは、データが、私は、次のFLOTチャートディレクティブを使用してい

例えば、
前のデータ:B-C-D-E-F
ボタン
新しいデータをクリックしてください:-B-C-D-E-F
チャート:B-C-D-E-F-A(また、Bと接続され得る)

ページが更新される場合は、すべてが正常にプロットされます。したがって、データとオプションは正しいです。 私が見たコードはすべてキャンバス、プレースホルダー、$.plot()であるため、リセットする方法はわかりません。

ここに私のデータがあります:
旧:

[{"label":"temp","data":[["2016-04-01T09:19:31.750Z","25"],["2016-04-01T09:19:31.956Z","25"],["2016-04-01T09:19:32.150Z","25"],["2016-04-01T09:19:32.326Z","25"],["2016-04-01T09:19:32.664Z","25"],["2016-04-01T09:19:32.844Z","25"],["2016-04-01T09:19:33.034Z","25"],["2016-04-01T09:19:33.225Z","25"],["2016-04-01T09:19:33.414Z","25"],["2016-04-01T09:19:33.571Z","25"],["2016-04-01T09:19:33.748Z","25"]]}] 

新:

[{"label":"temp","data":[["2016-03-28T09:19:31.062Z","20"],["2016-04-01T09:19:31.750Z","25"],["2016-04-01T09:19:31.956Z","25"],["2016-04-01T09:19:32.150Z","25"],["2016-04-01T09:19:32.326Z","25"],["2016-04-01T09:19:32.664Z","25"],["2016-04-01T09:19:32.844Z","25"],["2016-04-01T09:19:33.034Z","25"],["2016-04-01T09:19:33.225Z","25"],["2016-04-01T09:19:33.414Z","25"],["2016-04-01T09:19:33.571Z","25"],["2016-04-01T09:19:33.748Z","25"]]}] 

答えて

0

私は回避策を使用しています、 は、ディレクティブのスコープ内resetキーを追加しました。ボタンを押すとtrueに変更され、データが変更されるとinit()が再び呼び出されます。

さらに良い選択肢がある場合は、お勧めします。

var directive = { 
    restrict: 'EA', 
    template: '<div></div>', 
    scope: { 
     dataset: '=?', 
     reset: '=', 
     options: '=', 
     series: '=', 
     callback: '=', 
     src: '=' 
    }, 
    link: link 
}; 

... 

function onDatasetChanged(dataset) 
{ 
    if (plot && !scope.reset) 
    { 
     plot.setData(dataset); 
     plot.setupGrid(); 
     return plot.draw(); 
    } 
    else 
    { 
     scope.reset = false; 
     plot = init(); 
     onSerieToggled(scope.series); 
     return plot; 
    } 
} 
関連する問題