From 45e543b636969c7949dcf0a3b7d5d413ac4b7c78 Mon Sep 17 00:00:00 2001 From: Jakub Juszczak Date: Sun, 2 Oct 2016 10:31:14 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20reactiveData=20mixin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mixins/reactiveData.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/mixins/reactiveData.js diff --git a/src/mixins/reactiveData.js b/src/mixins/reactiveData.js new file mode 100644 index 0000000..50d9ec6 --- /dev/null +++ b/src/mixins/reactiveData.js @@ -0,0 +1,34 @@ +module.exports = { + data () { + return { + chartData: null + } + }, + watch: { + 'chartData': { + handler (newData, oldData) { + if (oldData) { + let chart = this._chart + + let newDataLabels = newData.datasets.map((dataset) => { + return dataset.label + }) + + let oldDataLabels = oldData.datasets.map((dataset) => { + return dataset.label + }) + + if (JSON.stringify(newDataLabels) === JSON.stringify(oldDataLabels)) { + newData.datasets.forEach((dataset, i) => { + chart.data.datasets[i].data = dataset.data + }) + chart.data.labels = newData.labels + chart.update() + } else { + this.renderChart(this.chartData, this.options) + } + } + } + } + } +}