mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 12:19:08 +02:00
Add reset method to chart prototype
This commit is contained in:
parent
766ca49cd0
commit
16f23b2c44
@ -34,6 +34,14 @@ myLineChart.data.datasets[0].data[2] = 50; // Would update the first dataset's v
|
||||
myLineChart.update(); // Calling update now animates the position of March from 90 to 50.
|
||||
```
|
||||
|
||||
#### .reset()
|
||||
|
||||
Reset the chart to it's state before the initial animation. A new animation can then be triggered using `update`.
|
||||
|
||||
```javascript
|
||||
myLineChart.reset();
|
||||
```
|
||||
|
||||
#### .render(duration, lazy)
|
||||
|
||||
Triggers a redraw of all chart elements. Note, this does not update elements for new data. Use `.update()` in that case.
|
||||
|
@ -409,6 +409,11 @@ module.exports = function(Chart) {
|
||||
return newControllers;
|
||||
},
|
||||
|
||||
/**
|
||||
* Reset the elements of all datasets
|
||||
* @method resetElements
|
||||
* @private
|
||||
*/
|
||||
resetElements: function() {
|
||||
var me = this;
|
||||
helpers.each(me.data.datasets, function(dataset, datasetIndex) {
|
||||
@ -416,6 +421,15 @@ module.exports = function(Chart) {
|
||||
}, me);
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets the chart back to it's state before the initial animation
|
||||
* @method reset
|
||||
*/
|
||||
reset: function() {
|
||||
this.resetElements();
|
||||
this.tooltip.initialize();
|
||||
},
|
||||
|
||||
update: function(animationDuration, lazy) {
|
||||
var me = this;
|
||||
Chart.plugins.notify('beforeUpdate', [me]);
|
||||
|
@ -666,4 +666,38 @@ describe('Chart.Controller', function() {
|
||||
expect(wrapper.firstChild.tagName).toBe('CANVAS');
|
||||
});
|
||||
});
|
||||
|
||||
describe('controller.reset', function() {
|
||||
it('should reset the chart elements', function() {
|
||||
var chart = acquireChart({
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: ['A', 'B', 'C', 'D'],
|
||||
datasets: [{
|
||||
data: [10, 20, 30, 0]
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true
|
||||
}
|
||||
});
|
||||
|
||||
var meta = chart.getDatasetMeta(0);
|
||||
|
||||
// Verify that points are at their initial correct location,
|
||||
// then we will reset and see that they moved
|
||||
expect(meta.data[0]._model.y).toBe(333);
|
||||
expect(meta.data[1]._model.y).toBe(183);
|
||||
expect(meta.data[2]._model.y).toBe(32);
|
||||
expect(meta.data[3]._model.y).toBe(484);
|
||||
|
||||
chart.reset();
|
||||
|
||||
// For a line chart, the animation state is the bottom
|
||||
expect(meta.data[0]._model.y).toBe(484);
|
||||
expect(meta.data[1]._model.y).toBe(484);
|
||||
expect(meta.data[2]._model.y).toBe(484);
|
||||
expect(meta.data[3]._model.y).toBe(484);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user