我试图用我从后端获得的数据填充我的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' } ";
}
答案 0 :(得分:0)
我不得不将我的c#代码更改为:
Data = "{ "value": "100", "color": "#00a65a", "highlight": "#00a65a", "label": "IE" } ";
我需要引用所有内容,并且它与\"
无法合作,我需要放"
使用JSON将其转换为对象:
var PieData = JSON.parse(token2);
我不确定这是否是最好的解决方案,但它现在正在运作。