score:15

Accepted answer

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


Related Query

More Query from same tag