buildOrUpdateControllers: function() {
var me = this;
var newControllers = [];
+ var datasets = me.data.datasets;
+ var i, ilen;
- helpers.each(me.data.datasets, function(dataset, datasetIndex) {
- var meta = me.getDatasetMeta(datasetIndex);
+ for (i = 0, ilen = datasets.length; i < ilen; i++) {
+ var dataset = datasets[i];
+ var meta = me.getDatasetMeta(i);
var type = dataset.type || me.config.type;
if (meta.type && meta.type !== type) {
- me.destroyDatasetMeta(datasetIndex);
- meta = me.getDatasetMeta(datasetIndex);
+ me.destroyDatasetMeta(i);
+ meta = me.getDatasetMeta(i);
}
meta.type = type;
meta.order = dataset.order || 0;
- meta.index = datasetIndex;
+ meta.index = i;
if (meta.controller) {
- meta.controller.updateIndex(datasetIndex);
+ meta.controller.updateIndex(i);
meta.controller.linkScales();
} else {
var ControllerClass = controllers[meta.type];
throw new Error('"' + meta.type + '" is not a chart type.');
}
- meta.controller = new ControllerClass(me, datasetIndex);
+ meta.controller = new ControllerClass(me, i);
newControllers.push(meta.controller);
}
- }, me);
+ }
return newControllers;
},
update: function(config) {
var me = this;
+ var i, ilen;
if (!config || typeof config !== 'object') {
// backwards compatibility
var newControllers = me.buildOrUpdateControllers();
// Make sure all dataset controllers have correct meta data counts
- helpers.each(me.data.datasets, function(dataset, datasetIndex) {
- me.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();
- }, me);
+ for (i = 0, ilen = me.data.datasets.length; i < ilen; i++) {
+ me.getDatasetMeta(i).controller.buildOrUpdateElements();
+ }
me.updateLayout();