From d689e0fc47fa3b7e475ec328be6a9c9e50e4d79d Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Tue, 8 Dec 2015 19:57:58 -0500 Subject: [PATCH] When only the dataset array changes scales did not update correctly. This was due to the fact that the new datasets did not have scale IDs yet. By building the controllers first, the IDs are mapped if necessary. Then we can correctly update scales. --- src/core/core.controller.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/core/core.controller.js b/src/core/core.controller.js index b12c430a4..b1fd23875 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -180,13 +180,12 @@ if (dataset.controller) { dataset.controller.updateIndex(datasetIndex); - return; - } + } else { + dataset.controller = new Chart.controllers[type](this, datasetIndex); - dataset.controller = new Chart.controllers[type](this, datasetIndex); - - if (resetNewControllers) { - dataset.controller.reset(); + if (resetNewControllers) { + dataset.controller.reset(); + } } }, this); @@ -210,11 +209,11 @@ // In case the entire data object changed this.tooltip._data = this.data; - Chart.scaleService.update(this, this.chart.width, this.chart.height); - // Make sure dataset controllers are updated and new controllers are reset this.buildOrUpdateControllers(true); + Chart.scaleService.update(this, this.chart.width, this.chart.height); + // Make sure all dataset controllers have correct meta data counts helpers.each(this.data.datasets, function(dataset, datasetIndex) { dataset.controller.buildOrUpdateElements();