我有ExtJs + Highcharts代码,如:
Ext.define('Cabinet.view.workspace.indexCharts.Line', {
extend: 'Ext.panel.Panel',
alias: 'widget.IndexLineChart',
show: function (chartDiv, valuesList) {
valuesList = '[' + valuesList + ']';
console.log(valuesList);
charts[chartDiv] = new Highcharts.Chart({
chart: {
renderTo: chartDiv,
type: 'line'
},
title: {
text: 'Some Title'
},
yAxis: {
categories: [2005, 2006, 2007]
},
series: [{ data: valuesList}],
legend: {
layout: 'horizontal',
align: 'center'
}
});
}
});
但是在我调用这个小部件之后,我收到了一些错误:
意外值NaN解析y属性。
return e}function oa(a){return Fa(a)?a:[a]}function p(){var a=arguments,b,c,d=a
console.log显示:[825557000000,1089384000000,1404492600000]
问题出在哪里?
答案 0 :(得分:4)
看起来像valuesList是一个字符串,它需要的是一个数组。
在将其传递给高图之前,您需要将其转换为数组,您可以通过各种方式执行此操作,例如
valuesList = '[' + valuesList + ']';
valuesList = JSON.parse(valuesList);
//OR
valuesList = jQuery.parse(valuesList);
//OR
valuesList = eval(valuesList);
选择适合你的那个 查看parsing string to array @ jsFiddle了解更多关于发生的事情
答案 1 :(得分:1)
这是因为series.data
对象需要一个数据点数组的值,但是你要为它提供一个包含数组JSON表示的字符串。 valueList
需要是一个数字数组而不是字符串。
如果valueList
是一个数字数组,则该行将其转换为字符串:
valuesList = '[' + valuesList + ']';
不要那样做。