2014-09-10 4 views
2

im, имеющих проблему с Chart.js.Chart.js заменить все данные

Firts, я установил данные, а затем, когда изменится параметр, я хочу восстановить всю диаграмму. Эта работа, но это похоже на диаграмму со старыми данными, все еще стоящими за новой.

первый ->

chart.Line(data, options); 

в случае ->

chart.Line(newdata, options); 

Я видел это решение chart.js load totally new data

, но я не люблю этот путь. Im в контексте угловой директивы, так что это не лучший aproach.

Я попытался без результатов

.update(), .removeData(), .clear(), .destroy() и т.д.

здесь его моя текущая директива

http://plnkr.co/edit/qn2UUyznonKm6zgEi8FW?p=catalogue

Любая идея?

ответ

5

Вы создаете новый график, поэтому в итоге вы получаете старую диаграмму за новой.

Один простой вариант, который я использовал: Удалите старую диаграмму из холста, который вы используете для диаграммы:

$('#canvas').replaceWith('<canvas id="canvas"></canvas>'); 

А теперь создать таблицу с новыми данными в одном холсте

var ctxChart = document.getElementById("canvas").getContext("2d"); 
window.myChart = new Chart(ctxChart).Line(newdata, options); 

Надеюсь, это поможет!

1

Для тех из вас, интересно, то же самого с круговыми диаграммами, не похож, что есть данный публичный метод, который работает, но вы можете использовать простой обходной путь, удаляя к представлению данных самостоятельно:

var pieChart = new Chart(ctx).Doughnut(undefined, pieChartOptions); 
pieChart.segments.splice(0, pieChart.segments.length); 

Кажется работа в порядке, хотелось бы, чтобы они просто добавили удаление всего метода или сделали работу на самом деле работоспособной.

Смежные вопросы