Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using HighCharts with Backbone

I have deployed a website using Bootstrap UI with Backbone JS for my new website. I want to load an example/demo charts on the page. I did not find tutorials regarding the same. Can someone help me with it ?

This is the example code I am trying to load on my website:

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-basic/

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>

like image 660
Anil Avatar asked Dec 05 '13 01:12

Anil


1 Answers

You can use view's "render" method to initialize highcharts:

$(function () {

    var DataModel = Backbone.Model.extend({});

    var DataCollection = Backbone.Collection.extend({
        model: DataModel
    });

    var DataView = Backbone.View.extend({
        el: '#container',
        initialize: function (options) {
            this.data = options.data;
        },
        render: function () {
            this.$el.highcharts({
                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.data.toJSON()
            });
        }
    });

    var items = new DataCollection([{
        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]
    }]);

    var view = new DataView({ data: items });

    view.render();

});

Here is live example: jsfiddle

like image 165
Nazar Avatar answered Sep 29 '22 14:09

Nazar