save chart instance on vm instance and add destroy() hooks to properly destroy chart when component is destroyed.

This commit is contained in:
Thorsten
2016-08-19 21:30:39 +02:00
parent 44eb15a89a
commit 998b190007
6 changed files with 30 additions and 12 deletions

View File

@@ -45,14 +45,17 @@ export default Vue.extend({
methods: { methods: {
render (data, options = this.options) { render (data, options = this.options) {
const chart = new Chart( this._chart = new Chart(
this.$els.canvas.getContext('2d'), { this.$els.canvas.getContext('2d'), {
type: 'bar', type: 'bar',
data: data, data: data,
options: options options: options
} }
) )
chart.generateLegend() this._chart.generateLegend()
} }
},
destroy () {
this._chart.destroy()
} }
}) })

View File

@@ -28,14 +28,17 @@ export default Vue.extend({
methods: { methods: {
render (data, options = this.options) { render (data, options = this.options) {
const chart = new Chart( this._chart = new Chart(
this.$els.canvas.getContext('2d'), { this.$els.canvas.getContext('2d'), {
type: 'doughnut', type: 'doughnut',
data: data, data: data,
options: options options: options
} }
) )
chart.generateLegend() this._chart.generateLegend()
} }
},
destroy () {
this._chart.destroy()
} }
}) })

View File

@@ -43,14 +43,17 @@ export default Vue.extend({
methods: { methods: {
render (data, options = this.options) { render (data, options = this.options) {
const chart = new Chart( this._chart = new Chart(
this.$els.canvas.getContext('2d'), { this.$els.canvas.getContext('2d'), {
type: 'line', type: 'line',
data: data, data: data,
options: options options: options
} }
) )
chart.generateLegend() this._chart.generateLegend()
} }
},
destroy () {
this._chart.destroy()
} }
}) })

View File

@@ -28,14 +28,17 @@ export default Vue.extend({
methods: { methods: {
render (data, options = this.options) { render (data, options = this.options) {
const chart = new Chart( this._chart = new Chart(
this.$els.canvas.getContext('2d'), { this.$els.canvas.getContext('2d'), {
type: 'pie', type: 'pie',
data: data, data: data,
options: options options: options
} }
) )
chart.generateLegend() this._chart.generateLegend()
} }
},
destroy () {
this._chart.destroy()
} }
}) })

View File

@@ -28,14 +28,17 @@ export default Vue.extend({
methods: { methods: {
render (data, options = this.options) { render (data, options = this.options) {
const chart = new Chart( this._chart = new Chart(
this.$els.canvas.getContext('2d'), { this.$els.canvas.getContext('2d'), {
type: 'polarArea', type: 'polarArea',
data: data, data: data,
options: options options: options
} }
) )
chart.generateLegend() this._chart.generateLegend()
} }
},
destroy () {
this._chart.destroy()
} }
}) })

View File

@@ -28,14 +28,17 @@ export default Vue.extend({
methods: { methods: {
render (data, options = this.options) { render (data, options = this.options) {
const chart = new Chart( this._chart = new Chart(
this.$els.canvas.getContext('2d'), { this.$els.canvas.getContext('2d'), {
type: 'radar', type: 'radar',
data: data, data: data,
options: options options: options
} }
) )
chart.generateLegend() this._chart.generateLegend()
} }
},
destroy () {
this._chart.destroy()
} }
}) })