在Morris条形图中传递动态值时出现问题

时间:2017-01-17 07:03:23

标签: jquery morris.js

我在我的页面中使用morris条形图。在静态发送数据时,其工作正常。但是当我以相同的格式获取动态数据时,条形图将数据显示为未定义。

                var feedback=data[0].feedback;
                console.log(feedback.length);
                for(i=0;i<feedback.length;i++)
                {
                    customer.push("{ 'x':'"+feedback[i].product_name+"', 'y':"+feedback[i].cust_feedback+"}");
                }
                var customer1=JSON.stringify(customer); 
                customer1 = customer1.replace(/\"/g,'');
                 customer1 = customer1.replace(/\'/g,'"');  
                Morris.Bar({
                              element: 'morris-bar-customer_feedback',
                              data:customer1,
                  xkey: 'x',
                  ykeys: ['y'],
                  labels: ['Tickets'],
                  xLabelAngle: 25
                            });

最后一个数组是

[{ "x":"TV", "y":1},{ "x":"Laptop", "y":4},{ "x":"Refrigerator", "y":3}]

Dynmic Value image

2 个答案:

答案 0 :(得分:0)

是的!我得到了答案。

var customer1 = JSON.stringify(customer);   
customer1 = customer1.replace(/\"/g,'');
customer1 = customer1.replace(/\'/g,'"');

var customera = customer1.concat();
var customers = JSON.parse(customera);

Morris.Bar({
    element: 'morris-bar-customer_feedback',
    data:customers,
    xkey: 'x',
    ykeys: ['y'],
    labels: ['Tickets'],
    xLabelAngle: 25
});

我使用了concat函数函数,然后解析了Json数据。现在我正在获得完美的条形图。我认为以前的数组中有一些未知数据。

答案 1 :(得分:0)

我认为问题在于您将setAll()而不是javascript对象传递给bar插件的string选项。您可以尝试以下修改:

data: