2012-10-02 57 views
0

我有ExtJS的+ Highcharts代碼喜歡這裏:HighCharts:意外NaN值解析Ÿ屬性

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' 
      } 
     }); 
    } 
}); 

但經過我叫這個小部件,我得到一些錯誤:顯示

Unexpected value NaN parsing y attribute.

return e}function oa(a){return Fa(a)?a:[a]}function p(){var a=arguments,b,c,d=a

的console.log :[825557000000,1089384000000,1404492600000]

問題在哪裏?

回答

4

它看起來像valuesList是一個字符串,它需要的是一個數組。

你需要將其轉換成一個數組傳遞到highchart之前,你可以做到這一點以各種方式像

valuesList = '[' + valuesList + ']'; 
valuesList = JSON.parse(valuesList); 
//OR 
valuesList = jQuery.parse(valuesList); 
//OR 
valuesList = eval(valuesList); 

選擇適合自己 退房parsing string to array @ jsFiddle要了解更多關於什麼發生了一些一個

+0

謝謝@Jugal。有些時候,我明白我需要轉換這個字符串。我嘗試一些像這樣:'valuesList = valuesList.map(function(x){return parseFloat(x)});'那很好!再次感謝。 **問題解決了**。 – ForceMan

1

這是因爲series.data對象需要一個值爲數據點的數組,但是您提供了一個包含數組的JSON表示的字符串。 valueList需要是一個數字而不是一個字符串的數組。

如果valueList是一個數字的未來在一個數組,那麼這條線將其轉換爲字符串:

valuesList = '[' + valuesList + ']'; 

不要那樣做。

+0

感謝Johny,現在我會嘗試糾正。 – ForceMan

+0

是否可以舉個例子? – ForceMan

+0

valuesList它的字符串數組(數值)。 – ForceMan