ChartJS从字符串添加数据

时间:2016-03-25 11:12:38

标签: javascript charts chart.js

我试图用我从后端获得的数据填充我的douhnut图表,但它不起作用..

有人可以告诉我我做错了什么以及如何解决它。

var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
var pieOptions = { ... };
var pieChart = new Chart(pieChartCanvas);
pieChart.Doughnut(PieData, pieOptions);

问题出在' PieData'。 如果我在javascript中进行此操作:

var PieData =
  [
   {
     value: 400,
     color: "#f39c12",
     highlight: "#f39c12",
     label: "FireFox"
   }
  ];

一切正常。

但我想设置后端的值:

var token2 = document
.querySelector('script[data-id="MyUniqueName"][data-token2]')
.getAttribute('data-token2');

使用token2 =" {值:100,颜色:'#00a65a',突出显示:'#00a65a',标签:' IE' }"

我尝试在字符串中添加[],或者使var data = [token2]但是没有任何工作。

我对javascript很不好,所以也许有人知道我的答案。

修改

我正在使用ASP.NET / C#为我的网站。 我用来将数据提供给javascript的方法是: HTML页面:

<scrpt type='text/javascript' data-id="MyUniqueName" data-token2="<%=Data%>" src='<%=ResolveUrl("~/dist/js/pages/dashboard2.js")%>' ></script>

C#

private String _data = String.Empty;
protected String Data {
        get {
        return this._data;
        }
        set {
            this._data = value;
        }
    }

protected void Page_Load(object sender, EventArgs e) {
    Data = "{ value: 100, color: '#00a65a', highlight: '#00a65a', label: 'IE' } ";
}

1 个答案:

答案 0 :(得分:0)

我不得不将我的c#代码更改为:

Data = "{ &quot;value&quot;: &quot;100&quot;, &quot;color&quot;: &quot;#00a65a&quot;, &quot;highlight&quot;: &quot;#00a65a&quot;, &quot;label&quot;: &quot;IE&quot; } ";

我需要引用所有内容,并且它与\"无法合作,我需要放&quot

使用JSON将其转换为对象:

var PieData = JSON.parse(token2);

我不确定这是否是最好的解决方案,但它现在正在运作。