2013-02-01 4 views
1

기본적으로 I Highchart 차트 일부 속성을 정의하는 객체가 : 그리고기능과 자바 스크립트 객체를 업데이트하는 방법

var options = { 
    chart: { 
     renderTo: 'container', 
     type: 'line', 
     marginRight: 130, 
     marginBottom: 25 
    }, 
    title: { 
     text: 'Monthly Average Temperature', 
     x: -20 //center 
    }, 
    subtitle: { 
     text: 'Source: WorldClimate.com', 
     x: -20 
    }, 
    xAxis: { 
     categories: [] 
    }, 
    yAxis: { 
     title: { 
      text: 'Temperature (°C)' 
     }, 
     plotLines: [{ 
      value: 0, 
      width: 1, 
      color: '#808080' 
     }] 
    }, 
    tooltip: { 
     formatter: function() { 
      return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + '°C'; 
     } 
    }, 
    legend: { 
     layout: 'vertical', 
     align: 'right', 
     verticalAlign: 'top', 
     x: -10, 
     y: 100, 
     borderWidth: 0 
    }, 
    series: [{ 
     name: 'Tokyo', 
     data: aCosts 
    }] 
}; 

내가 파일 (아약스 호출)에서이 개체를 업데이트과 같이 할 : 이 범주가 정의되어 있지한다고으로

문제가
$.getJSON(
    "handler.php", 
    function (oJSON) { 
     var sName, 
      sCost, 
      aRow; 
     for (sName in oJSON) { 
      aRow = []; 
      //categories = []; 
      if (oJSON.hasOwnProperty(sName)) { 
       aRow.push(sName); 
       categories.push(sName); 
      } 
      // Create the chart 
      var chart = new Highcharts.Chart(options); 
     } 
    } 
); 

, 나는 옵션에 새로운 가치를 전달할 수 없습니다. 나는 시도했다 :

options.categories.push(sName) 
options[categories].push(sName) 

그리고 아무 것도.

옵션 개체 내에서 범주 값을 업데이트하려면 어떻게해야합니까?

답변

5

options$.JSON 전화에서 볼 수 있다고 가정하면,이 작동합니다 : 당신이 당신의 options 객체의 구조를 보면

options.xAxis.categories.push(sName); 

, 당신이 볼, categories이 재산 xAxis 이하이다. 따라서 당신은 그와 같은 주소를 지어야합니다.

0

당신은 너무처럼 첫 번째 범주를 정의해야합니다

options.categories = []; 

다음이 배열에 일을 푸시 할 수 있습니다.

편집 : 귀하의 json에도 categories: []을 붙여서 시작할 수 있습니다.

+0

해당 범주가 이미 JSON에있는 xAxis 개체 아래에있는 것을 보지 못했습니다. 다른 사람들이 이미 지적했듯이 xAxis 내에서 올바른 위치에 액세스하면됩니다. – Hippocrates

관련 문제