Morris.js - 有没有Setter方法?

时间:2014-07-17 04:35:36

标签: javascript jquery morris.js

我有morris.js的任何setter函数吗?我已经完成了他们的文档,似乎只有一个使用setData()更改数据点值的示例。

但是当您更改数据时,您可能需要更改x / y轴上的标签或更改其他选项。那么,是否有关于morris.js的常规setter方法?

1 个答案:

答案 0 :(得分:4)

检查scriptsetData()函数后,我发现没有任何setter函数。但是可以重置选项并重绘,如下所示。

在js文件(硬编码)上启动图表

var options = {
            element : 'lead-summery',
            data : xChart.leads,
            xkey: 'date',
            ykeys: ['total', 'bananas', 'apples', 'oranges'],
            labels:['Total', 'Bananas', 'Apples', 'Oranges'],
            lineColors:['#E67A77', '#D9DD81', '#79D1CF'],
            fillOpacity: 0.2,
            behaveLikeLine: true,
            lineWidth: 1
        };

        // you must save the cart in a global variable
        window.myAreaChart = Morris.Area(options); 

动态更新图表选项

现在说我们想通过AJAX添加一些新数据,并希望更改xLabelFormat功能和xLabelAngle标签。

var data = {}; // we get this from ajax call or whatever

// now we update the options

// xLabelFormat callback function
window.myAreaChart.options.xLabelFormat = function(date){
    return formatDate(date);
}

// xLabelAngle
window.myAreaChart.xLabelAngle = 60;

// add data and update the chart
window.myAreaChart.setData(data);

了解非常重要,为了更新图表,我们需要调用redraw()方法,例如window.myAreaChart.redraw()。否则图表不会更新。我们没有在上面的示例中调用redraw()因为setData()方法调用它所以不需要调用它两次。但是,如果您不使用setData(),则需要致电redraw()以便直观地更新图表。