diff --git a/.gitignore b/.gitignore index dfad54d..ed8166f 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,5 @@ node_modules .DS_Store showcase .generator-release + +.idea/* \ No newline at end of file diff --git a/lib/core.js b/lib/core.js index 5cfa723..c3b5620 100644 --- a/lib/core.js +++ b/lib/core.js @@ -42,6 +42,8 @@ module.exports = { } else { dataKey = dataKey || dataKeys[chart.name]; updatePoints(nextProps, chart, dataKey); + chart.scale.xLabels = nextProps.data.labels; + chart.scale.calculateXLabelRotation(); chart.update(); } }; @@ -91,14 +93,26 @@ var updatePoints = function(nextProps, chart, dataKey) { chart.segments[segmentIndex].value = segment.value; }); } else { + while (chart.scale.xLabels.length > nextProps.data.labels.length) { + chart.removeData(); + } nextProps.data.datasets.forEach(function(set, setIndex) { set.data.forEach(function(val, pointIndex) { - chart.datasets[setIndex][dataKey][pointIndex].value = val; + if (typeof(chart.datasets[setIndex][dataKey][pointIndex]) == "undefined") { + addData(nextProps, chart, setIndex, pointIndex); + } else { + chart.datasets[setIndex][dataKey][pointIndex].value = val; + } }); }); } }; - - +var addData = function(nextProps, chart, setIndex, pointIndex) { + var values = []; + nextProps.data.datasets.forEach(function(set) { + values.push(set.data[pointIndex]); + }); + chart.addData(values, nextProps.data.labels[setIndex]); +};