2013-07-11 2 views
0

Я хочу манипулировать серией var до того, как я сконфигурировал высокоуровневый код.Highcharts - слишком много серий отображаются

Но я получаю 68 серий !! вместо двух серий, которые я определил ранее.

Какая ошибка?

enter image description here

var series; 
function refresher() {  
series = "[{ name = 'test1', data = data[0]},{ name = 'test', data = data[1]}]";   

     $.getJSON(url, 
     function(data) {    

     chart = new Highcharts.StockChart 
     ({ 
     chart: { renderTo: 'container', zoomType: 'x', type: 'line', width: 900 }, 
     legend: { enabled: true, verticalAlign:'bottom' }, 
     title: { text: 'You see the data of the last measured hour!' }, 
     credits: { enabled: false },   
     xAxis: { type: 'datetime', title: { text: 'time' } }, 
     yAxis: { title: { text: 'hallo' } },  
     rangeSelector:{ enabled: false }, 
     navigator : { enabled: false }, 
     series: series,  
      tooltip: { xDateFormat: '%e. %b.%Y %H:%M:%S', valueDecimals: 2, }, 
     exporting: { enabled: true }, 
     }); 
     // Format the y-data. 
     Highcharts.numberFormat(this.y, 2, '.', ','); 
    }); 
}; 

ответ

1

Проблема заключается в переменной series.

Прежде всего, это строка, а не объект.

Я не знаю, почему вы используете это так, но если вы действительно хотите, чтобы быть строкой, вы должны будете eval его, когда дано его к series объекта:

... 
series: eval(series) 
... 

Также , это не так:

series = "[{ name = 'test1', data = data[0]},{ name = 'test', data = data[1]}]" 

Признаки равны. Оно должно быть:

series = "[{ name: 'test1', data: data[0]},{ name: 'test', data: data[1]}]" 

(я заменил равные знаки двоеточия.)

+0

Кто-то из Highcharts-Team сказал мне, что я могу сделать это следующим образом: HTTP: // StackOverflow. com/questions/16838742/can-i-use-different-if-conditions-in-highstock-code Спасибо! Теперь он работает – Susanne92

+0

Обратите внимание, что он нигде не упоминает нить. Если вы напишете его без кавычек, вам будет дан объект, и вам больше не придется его оценивать. Но в этом случае вам нужно будет написать назначение внутри функции обратного вызова getJSON, потому что только тогда будут определены «данные». См. Строки 61 и 103 [this jsFiddle] (http://jsfiddle.net/ssarabando/7gtga/3/), чтобы увидеть пример. – ssarabando