From: Evert Timberg Date: Fri, 22 Jan 2016 03:00:21 +0000 (-0500) Subject: buildOrUpdateControllers now returns an array of all the new controllers that were... X-Git-Tag: v2.0.0~61^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=refs%2Fpull%2F1929%2Fhead;p=thirdparty%2FChart.js.git buildOrUpdateControllers now returns an array of all the new controllers that were created. Build controllers before updating the scales but only reset them afterwards because the scales need to update label moments first. --- diff --git a/src/core/core.controller.js b/src/core/core.controller.js index 654964c0b..b0e1b08f7 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -208,8 +208,10 @@ Chart.layoutService.update(this, this.chart.width, this.chart.height); }, - buildOrUpdateControllers: function buildOrUpdateControllers(resetNewControllers) { + buildOrUpdateControllers: function buildOrUpdateControllers() { var types = []; + var newControllers = []; + helpers.each(this.data.datasets, function(dataset, datasetIndex) { if (!dataset.type) { dataset.type = this.config.type; @@ -222,10 +224,7 @@ dataset.controller.updateIndex(datasetIndex); } else { dataset.controller = new Chart.controllers[type](this, datasetIndex); - - if (resetNewControllers) { - dataset.controller.reset(); - } + newControllers.push(dataset.controller); } }, this); @@ -237,6 +236,8 @@ } } } + + return newControllers; }, resetElements: function resetElements() { @@ -250,10 +251,15 @@ this.tooltip._data = this.data; // Make sure dataset controllers are updated and new controllers are reset - this.buildOrUpdateControllers(true); + var newControllers = this.buildOrUpdateControllers(); Chart.layoutService.update(this, this.chart.width, this.chart.height); + // Can only reset the new controllers after the scales have been updated + helpers.each(newControllers, function(controller) { + controller.reset(); + }); + // Make sure all dataset controllers have correct meta data counts helpers.each(this.data.datasets, function(dataset, datasetIndex) { dataset.controller.buildOrUpdateElements();