【问题标题】:how to add dynamic data to morris bar chart如何将动态数据添加到莫里斯条形图
【发布时间】:2015-09-15 16:01:08
【问题描述】:

我想通过 ajax 向 Morris 条形图添加数据。以下是我在ajax成功中得到的json

[{"x":"2014-10-02","y":"1"},{"x":"2014-10-19","y":"1"},{"x":"2014-10-20","y":"1"},{"x":"2014-11-13","y":"1"}]

下面是js代码

var chart = Morris.Bar({
        element : 'normal-bar-graph',
        data : [{
            "x" : null,
            "y" : null
        }],
        xkey : 'x',
        ykeys : ['y'],
        labels : ['Added']
    });
$.ajax({
            type: "POST",
            url:  "some_url",
            data: {'user_report':[k,v]},

            success: function(html)                    
            {   
                if(html == "error")
                {
                alert('error');
                }
                else
                {
                    chart.setData(html);

                }
                hide_loading();
            }
        });

我正在使用 /morris/raphael.2.1.0.min.js/morris/morris.min.jschart.setData(html); 功能不像 morris 的文档中所说的那样工作。

提前致谢。如有错误请指出。

如果有帮助的话,我们还制作了一个 jsbin:morris

【问题讨论】:

    标签: jquery ajax morris.js


    【解决方案1】:

    去掉引号。 setData 需要一个数组。当您使用引号时,它会将其转换为字符串而不是数组。

    像这样:chart.setData([{ "y": "2006", "a": 100, "b": 90 },{ "y": "2006", "a": 100, "b": 90 }]);

    【讨论】:

    • 但它只显示一张图。另外,当我想通过 ajax 获取数据时,chart.setData().
    • @dhpratik:“它只显示一个图表”是什么意思?上面提供的解决方案应该可以工作,否则,您并没有告诉我们全部情况。
    • 是的。看起来那是因为一个错误 - github.com/morrisjs/morris.js/issues/105 将您的脚本更新到最新版本的莫里斯条形图,一切正常。 jsbin.com/kiduwuseda/edit?html,js,output 。但我原来的解决方案解决你的问题。
    • 我已经给出了上面的 jsbin 链接,当我在 setData 中放入 json 数组时,它只显示了 json 字符串中最后一个数据的图表。我的主要问题也是我将如何放入存储在变量中的 json 数组(主要在我的问题中提出)
    • 谢谢,在 jsbin 中工作正常。希望通过我的 ajax 调用来获取数据也能正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2014-09-15
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多