2013-05-07 2 views
3

다음과 같은 서비스 결과가 있습니다. 그것은 확실히 확장 될 것입니다. Google 차트를 사용하여이 데이터를 표시합니다. 그러나 나는 그 순간 정적이었다. 서비스에서 오는 많은 양의 데이터를 json 형식으로 쉽게 변환 할 수있는 방법이 있습니까? foreach 루프를 사용하여 Google 차트 데이터에 해당 문자열을 생성하고 싶지 않습니다. 또한 프로젝트에서 angularjs를 사용합니다. 어떤 도움에 감사서비스 데이터를 Google 차트 데이터 형식으로 변환 - Angularjs - JSON

[ 
    { 
    "date": "2013-05-01", 
    "amount": null, 
    "imprCount": 120, 
    "clickCount": 141 
    }, 
    { 
    "date": "2013-05-02", 
    "amount": null, 
    "imprCount": 1122, 
    "clickCount": 125 
    }, 
    { 
    "date": "2013-05-03", 
    "amount": null, 
    "imprCount": 1782, 
    "clickCount": 1154 
    } 
] 

//Chart Data 
chartIncome.data = {"cols": [ 
     {/*id: "month",*/ label: "Month", type: "string"}, 
     {/*id: "income-id",*/ label: "Income", type: "number"} 
    ], "rows": [ 
     {c: [ 
      {v: "2013-05-01"}, 
      {v: 12} 
     ]}, 
     {c: [ 
      {v: "2013-05-02"}, 
      {v: 25} 
     ]}, 
     {c: [ 
      {v: "2013-05-03"}, 
      {v: 203} 

     ]}, 
     {c: [ 
      {v: "2013-05-04"}, 
      {v: 1002} 

     ]} 
    ]}; 
+0

당신이 방금 어떻게 chartIncome.data 형식으로 데이터의 배열을 변환 요청 :

function processArray(json) { var chartData = []; for (var i = 0, l = json.length; i < l; i++) { chartData.push({ c: [ { v: json[i].date, {v:json[i].clickCount}]}); } return chartData; } 

이 같은 컨트롤러에서 뭔가 각도 서비스 호출을하는 가정? – lucuma

답변

6
당신은 공정 데이터를 어떤 식 으로든를해야 할 것

그리고 가장 쉬운 방법은 바로 구글 차트가 찾고있는 형식으로 JSON 데이터 배열을 변환하는 함수를 만드는 것 같다 . foreach 루프를 사용하지 않으려 고했지만 데이터를 변환하려면 처리해야한다고 말한 것을 알고 있습니다. 이 기능은 작동 할 수 있습니다.

Service.getData().then(function(data) { 
    var chartData = processArray(data); 
    chartIncome.data = {"cols": [ 
     { label: "Month", type: "string"}, 
     { label: "Income", type: "number"} 
     ], "rows": chartData 
    }; 
}); 
관련 문제