From: Evert Timberg Date: Wed, 9 Dec 2015 00:57:58 +0000 (-0500) Subject: When only the dataset array changes scales did not update correctly. This was due... X-Git-Tag: 2.0.0-beta2~23^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d689e0fc47fa3b7e475ec328be6a9c9e50e4d79d;p=thirdparty%2FChart.js.git 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. --- 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; - } - - dataset.controller = new Chart.controllers[type](this, datasetIndex); + } else { + 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();