Coder Social home page Coder Social logo

Comments (8)

weizhenye avatar weizhenye commented on May 29, 2024 1

@davodaslanifakor @stephengardner

OK, I install Nuxt.js starter and have some try, found that it is because Highcharts.getOptions() is executed in server, while Highcharts itself will not generate a Highcharts object when env is server.

To solve this, in your DemoChart.vue:

<template>
  <highcharts :options="options"></highcharts>
</template>
<script>
import Highcharts from 'highcharts'
export default {
  name: 'demo-chart',
  // ...
  // Highcharts.getOptions().colors[0]
  // ...
}
</script>

and when you need use this chart, use <no-ssr> wrap it:

<template>
  <no-ssr>
    <demo-chart></demo-chart>
  </no-ssr>
</template>

from vue-highcharts.

weizhenye avatar weizhenye commented on May 29, 2024

Do you import Highcharts in this file? Try to use this.Highcharts.getOptions().

from vue-highcharts.

davodaslanifakor avatar davodaslanifakor commented on May 29, 2024

yes i do ... lock hear ...
my dir plugins file chart.js

import Vue from 'vue';
import VueHighcharts from 'vue-highcharts';
import Highcharts from 'highcharts';

// load these modules as your need
import loadStock from 'highcharts/modules/stock';
import loadMap from 'highcharts/modules/map';
import loadDrilldown from 'highcharts/modules/drilldown';
// some charts like solid gauge require `highcharts-more.js`, you can find it in official demo.
import loadHighchartsMore from 'highcharts/highcharts-more';
import loadSolidGauge from 'highcharts/modules/solid-gauge';

loadStock(Highcharts);
loadMap(Highcharts);
loadDrilldown(Highcharts);
loadHighchartsMore(Highcharts);
loadSolidGauge(Highcharts);

Vue.use(VueHighcharts, { Highcharts });

and then

in nuxt.config.js

...
plugins: [
    {src:'~/plugins/chart.js',ssr:false}

  ],
  build: {
    vendor:['vue-highcharts','vue-carousel']
]
...

then my component chart.vue

<template>
	<no-ssr>
			<highcharts :options="options"></highcharts>
    </no-ssr>
</template>

<script>
export default {

  name: 'chart-airpot',

  data () {
    return {
    	options:{

    		 chart: {
        type: 'heatmap',
        marginTop: 40,
        marginBottom: 80,
        plotBorderWidth: 1
    },


    title: {
        text: 'Sales per employee per weekday'
    },

    xAxis: {
        categories: ['Alexander', 'Marie', 'Maximilian', 'Sophia', 'Lukas', 'Maria', 'Leon', 'Anna', 'Tim', 'Laura']
    },

    yAxis: {
        categories: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
        title: null
    },

    colorAxis: {
        min: 0,
        minColor: '#FFFFFF',
        maxColor: Highcharts.getOptions.colors[0]
    },

    legend: {
        align: 'right',
        layout: 'vertical',
        margin: 0,
        verticalAlign: 'top',
        y: 25,
        symbolHeight: 280
    },

    tooltip: {
        formatter: function () {
            return '<b>' + this.series.xAxis.categories[this.point.x] + '</b> sold <br><b>' +
                this.point.value + '</b> items on <br><b>' + this.series.yAxis.categories[this.point.y] + '</b>';
        }
    },

    series: [{
        name: 'Sales per employee',
        borderWidth: 1,
        data: [[0, 0, 10], [0, 1, 19], [0, 2, 8], [0, 3, 24], [0, 4, 67], [1, 0, 92], [1, 1, 58], [1, 2, 78], [1, 3, 117], [1, 4, 48], [2, 0, 35], [2, 1, 15], [2, 2, 123], [2, 3, 64], [2, 4, 52], [3, 0, 72], [3, 1, 132], [3, 2, 114], [3, 3, 19], [3, 4, 16], [4, 0, 38], [4, 1, 5], [4, 2, 8], [4, 3, 117], [4, 4, 115], [5, 0, 88], [5, 1, 32], [5, 2, 12], [5, 3, 6], [5, 4, 120], [6, 0, 13], [6, 1, 44], [6, 2, 88], [6, 3, 98], [6, 4, 96], [7, 0, 31], [7, 1, 1], [7, 2, 82], [7, 3, 32], [7, 4, 30], [8, 0, 85], [8, 1, 97], [8, 2, 123], [8, 3, 64], [8, 4, 84], [9, 0, 47], [9, 1, 114], [9, 2, 31], [9, 3, 48], [9, 4, 91]],
        dataLabels: {
            enabled: true,
            color: '#000000'
        }
    }]

    	}
	}
  }
}
</script>

<style lang="css" scoped>
</style>

this is my way ....
so where is wrong ??
tnx for help and feedback

from vue-highcharts.

weizhenye avatar weizhenye commented on May 29, 2024

Try change this line maxColor: Highcharts.getOptions.colors[0] to maxColor: this.Highcharts.getOptions.colors[0]

from vue-highcharts.

davodaslanifakor avatar davodaslanifakor commented on May 29, 2024

@weizhenye don't work

from vue-highcharts.

weizhenye avatar weizhenye commented on May 29, 2024

Try add import Highcharts from 'highcharts'; before export defalt { in chart.vue, and this line maxColor: Highcharts.getOptions.colors[0] is stay unchanged.

from vue-highcharts.

stephengardner avatar stephengardner commented on May 29, 2024

This still does not work.

from vue-highcharts.

errorsolve avatar errorsolve commented on May 29, 2024

[Solved] TypeError: this.getOptions is not a function in vue.js

from vue-highcharts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.