score:5
Edit: Check out the Vue 2 example from @Tody.Lu which is a great solution
You need to use renderTo: "#" + this.element
to get a properly formatted ID selector.
I believe you can also use renderTo: this.$el
without having an ID at all.
Edit: I checked my Highcharts component and this is how I have it:
$(this.$el).highcharts(data);
No need for an ID this way.
score:-1
Take care, in your template you have:
<template>
<div><div>
</template>
You need to have:
<template>
<div></div>
</template>
score:0
If you're using a central data store like Vuex, you can include chart increment property that stores the number of charts created, and increments when there is a new one.
Then you'd set the ID using a computed property:
computed: {
id () {
return 'highchart-' + idvar
}
}
You could just as easily keep it in a global variable, but that's a bad idea.
Another option (one I've used in the past) is to create a random string in your component. I've used the UUID generator found at this answer.
if I use UUID function UUID.generate()
to return a random string:
data () {
return {
uid: UUID.generate()
}
}
then use the generated uid
property in a computed property:
computed: {
id () {
return 'chart-' + this.uid
}
}
Then you'd use {{ id }}
in your VM.
score:17
vue.js 2.0 example (Vue start to use virtual dom):
1) npm install highcharts
2) var Highcharts = require('highcharts');
3) Highcharts.chart(
this.$el, {...})
in "mounted" method because this.$el
isn't available before "mounted"
4) the Instance of highcharts should be destroyed in "beforeDestroy" method.
<template>
<div><div>
</template>
<script>
var Highcharts = require('highcharts');
export default {
name : "Chart",
props : {
series : {
type: Array,
required: true
}
},
data : function() {
return {
target: undefined
}
},
mounted : function() {
this.target = Highcharts.chart(this.$el, {
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '°C'
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: this.series
});
},
beforeDestroy: function() {
this.target.destroy();
},
}
</script>
And the parent component is:
<template>
<div id="app">
<h1>{{ msg }}</h1>
<Chart :series = "initSeries"></Chart>
</div>
</template>
<script>
import Chart from './Chart.vue';
export default {
name: 'app',
components : {Chart},
data () {
return {
msg: 'Welcome to Your Vue.js App',
}
},
computed : {
initSeries : function() {
return [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}];
}
}
}
</script>
Source: stackoverflow.com
Related Query
- Loading data from API into a highcharts vue component
- How to bind to Highcharts constructor/listen to CustomEvents from Vue component
- Create highcharts vue component
- Highcharts in Vue.js component
- Using PhantomJS to create HighCharts grahps server side for use in PDF creation (PHP) - results in exit code 11 from PHPs exec();
- Highcharts - Global configuration with common code and unique data & Headings
- HighCharts Stock Chart error code 18
- highcharts change rendered image source on click
- How do i add mouse wheel code in Angular2 highcharts in typescript
- how to display 2 same highcharts without duplicate the code
- Use of DotNet HighCharts dll to make charts in code behind
- Calling function in component class from Highcharts component in React
- How can I pass values from Highcharts event callbacks (click, mouseOver, mouseOut) back to React component member function?
- How to edit tooltip in Highcharts C# code
- what means ${demo.css} in example files of highcharts ? That piece of code seems to be literal
- Implementing Jaspersoft Studio Community (v6.2.2) Custom Visualisation Component showing Highcharts chart
- passing json values to highcharts from .net code behind
- How set options from HIGHCHARTS in a chart using vue chartkick
- how to use highcharts tooltip formatter in python code
- passing formatting JavaScript code to HighCharts with JSON
- Vue js + HighChart - how can I make a synchronous axios call before the component get rendered?
- Integrate Highcharts maps with react component
- Highcharts component that creates secondary yAxis based on props.boolean
- Different Highcharts in same component (Angular 5)
- Highcharts display label for pie chart using html table as data source
- Simple, Open source PHP wrapper for Highcharts library
- How to get the angular component class reference inside an emitted Highcharts selection event callback function?
- How to add highcharts plugins into highcharts-vue(highcharts vue wrapper)
- Add Source to Highcharts Export CSV
- Include additional highcharts source data in angular2 app
More Query from same tag
- Javascript callbacks in Typescript. Accessing both class members and javascript 'this' parameter
- Add average to highchart dynamically by zoom level for every series on chart
- how to enable only 1 out of 2 column column graph by default when page loads in highcharts and the 2nd one gets visible when toggled in the legend
- Highcharts customEvents plugin + Highstock Error
- renderer.text not working in gevgeny/angular2-highcharts
- Highchart Drill Down do not work for different chart types on same page
- how can I use rangeselector and navigation in highcharts in the given code
- HighStock Start Month rangeSelector And series.compare Not Working on Initial Load
- Incorrect JSON data format
- How can I display the outcome of the for loop in highcharts
- Highcharts Dynamic Chart with MySQL Data doesn't reload
- incorrect highcharts export server js script error codes
- Issues in Highchart-treemap with drilldown data label color change
- How to set plot area width and height in Highcharts?
- Highcharts Datalabel formatting in spline
- Highchart inner donut name as header for outer donut tooltip
- Highcharts: Render the bar chart from the bottom
- highcharts round decimals for gauge labels
- HighCharts column unknown number of series
- How to use array_merge to display non-quoted commands in PHP/Highcharts?
- datatable inside Highcharts-Pie chart
- Angular / Jquery selectors result an error when running Protractor
- new Highcharts.Chart creating trouble. Why?
- Why does HighCharts reverse the order of my series?
- Highcharts: How to Place Y-axis title next to first marker?
- Highcharts dynamic stacked area
- Bar chart with wrong bar height
- Highchart xAxis.currentDateIndicator showing the current time (passing by)
- Highchart dates do not work for some data series
- Is it possible to plot a chat like the below screenshot using highcharts?