Compare commits

..

4 Commits

Author SHA1 Message Date
Jakub Juszczak
fc7818d56d 💎 Release new version 2.3.5
Signed-off-by: Jakub Juszczak <netghost03@gmail.com>
2017-02-14 17:40:03 +01:00
Jakub Juszczak
6a82e42c6e 🐛 Fix eslint errors 2017-02-14 17:37:54 +01:00
Jakub
e441ed286f Merge pull request #36 from apertureless/feature/destroy_chartinstance
🔨 Change reactiveMixins to fix #35
2017-02-14 17:35:30 +01:00
Jakub Juszczak
aa76f518cb 🔨 Change reactiveMixins
Destroy chart instance on render()
Add additional check for dataset length
Add comments
Refactor reactiveData to match reactiveProp style
2017-02-14 17:31:18 +01:00
4 changed files with 62 additions and 51 deletions

61
dist/vue-chartjs.js vendored
View File

@@ -42978,38 +42978,38 @@ return /******/ (function(modules) { // webpackBootstrap
watch: { watch: {
'chartData': { 'chartData': {
handler: function handler(newData, oldData) { handler: function handler(newData, oldData) {
var _this = this;
if (oldData) { if (oldData) {
var chart = this._chart; (function () {
var chart = _this._chart;
var newDataLabels = newData.datasets.map(function (dataset) { var newDatasetLabels = newData.datasets.map(function (dataset) {
return dataset.label; return dataset.label;
}); });
var oldDataLabels = oldData.datasets.map(function (dataset) { var oldDatasetLabels = oldData.datasets.map(function (dataset) {
return dataset.label; return dataset.label;
}); });
if ((0, _stringify2.default)(newDataLabels) === (0, _stringify2.default)(oldDataLabels)) { var oldLabels = (0, _stringify2.default)(oldDatasetLabels);
this.forceUpdate(newData, chart); var newLabels = (0, _stringify2.default)(newDatasetLabels);
} else {
this.forceRender(); if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {
} newData.datasets.forEach(function (dataset, i) {
chart.data.datasets[i].data = dataset.data;
});
chart.data.labels = newData.labels;
chart.update();
} else {
chart.destroy();
_this.renderChart(_this.chartData, _this.options);
}
})();
} }
} }
} }
},
methods: {
forceUpdate: function forceUpdate(newData, chart) {
newData.datasets.forEach(function (dataset, i) {
chart.data.datasets[i].data = dataset.data;
});
chart.data.labels = newData.labels;
chart.update();
},
forceRender: function forceRender() {
this.renderChart(this.chartData, this.options);
}
} }
}; };
@@ -43064,21 +43064,26 @@ return /******/ (function(modules) { // webpackBootstrap
(function () { (function () {
var chart = _this._chart; var chart = _this._chart;
var newDataLabels = newData.datasets.map(function (dataset) { var newDatasetLabels = newData.datasets.map(function (dataset) {
return dataset.label; return dataset.label;
}); });
var oldDataLabels = oldData.datasets.map(function (dataset) { var oldDatasetLabels = oldData.datasets.map(function (dataset) {
return dataset.label; return dataset.label;
}); });
if ((0, _stringify2.default)(newDataLabels) === (0, _stringify2.default)(oldDataLabels)) { var oldLabels = (0, _stringify2.default)(oldDatasetLabels);
var newLabels = (0, _stringify2.default)(newDatasetLabels);
if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {
newData.datasets.forEach(function (dataset, i) { newData.datasets.forEach(function (dataset, i) {
chart.data.datasets[i].data = dataset.data; chart.data.datasets[i].data = dataset.data;
}); });
chart.data.labels = newData.labels; chart.data.labels = newData.labels;
chart.update(); chart.update();
} else { } else {
chart.destroy();
_this.renderChart(_this.chartData, _this.options); _this.renderChart(_this.chartData, _this.options);
} }
})(); })();

View File

@@ -1,6 +1,6 @@
{ {
"name": "vue-chartjs", "name": "vue-chartjs",
"version": "2.3.4", "version": "2.3.5",
"description": "vue.js wrapper for chart.js", "description": "vue.js wrapper for chart.js",
"author": "Jakub Juszczak <jakub@nextindex.de>", "author": "Jakub Juszczak <jakub@nextindex.de>",
"repository": { "repository": {

View File

@@ -10,35 +10,33 @@ module.exports = {
if (oldData) { if (oldData) {
let chart = this._chart let chart = this._chart
let newDataLabels = newData.datasets.map((dataset) => { // Get new and old DataSet Labels
let newDatasetLabels = newData.datasets.map((dataset) => {
return dataset.label return dataset.label
}) })
let oldDataLabels = oldData.datasets.map((dataset) => { let oldDatasetLabels = oldData.datasets.map((dataset) => {
return dataset.label return dataset.label
}) })
if (JSON.stringify(newDataLabels) === JSON.stringify(oldDataLabels)) { // Stringify 'em for easier compare
this.forceUpdate(newData, chart) const oldLabels = JSON.stringify(oldDatasetLabels)
const newLabels = JSON.stringify(newDatasetLabels)
// Check if Labels are equal and if dataset length is equal
if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {
newData.datasets.forEach((dataset, i) => {
chart.data.datasets[i].data = dataset.data
})
chart.data.labels = newData.labels
chart.update()
} else { } else {
this.forceRender() chart.destroy()
this.renderChart(this.chartData, this.options)
} }
} }
} }
} }
},
methods: {
forceUpdate (newData, chart) {
newData.datasets.forEach((dataset, i) => {
chart.data.datasets[i].data = dataset.data
})
chart.data.labels = newData.labels
chart.update()
},
forceRender () {
this.renderChart(this.chartData, this.options)
}
} }
} }

View File

@@ -11,21 +11,29 @@ module.exports = {
if (oldData) { if (oldData) {
let chart = this._chart let chart = this._chart
let newDataLabels = newData.datasets.map((dataset) => { // Get new and old DataSet Labels
let newDatasetLabels = newData.datasets.map((dataset) => {
return dataset.label return dataset.label
}) })
let oldDataLabels = oldData.datasets.map((dataset) => { let oldDatasetLabels = oldData.datasets.map((dataset) => {
return dataset.label return dataset.label
}) })
if (JSON.stringify(newDataLabels) === JSON.stringify(oldDataLabels)) { // Stringify 'em for easier compare
const oldLabels = JSON.stringify(oldDatasetLabels)
const newLabels = JSON.stringify(newDatasetLabels)
// Check if Labels are equal and if dataset length is equal
if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {
newData.datasets.forEach((dataset, i) => { newData.datasets.forEach((dataset, i) => {
chart.data.datasets[i].data = dataset.data chart.data.datasets[i].data = dataset.data
}) })
chart.data.labels = newData.labels chart.data.labels = newData.labels
chart.update() chart.update()
} else { } else {
chart.destroy()
this.renderChart(this.chartData, this.options) this.renderChart(this.chartData, this.options)
} }
} }