2017-01-31 2 views
0

Я хочу отобразить гистограмму с использованием highcharts.I devoloping приложение в игровой структуре (play-java), в котором я возвращаю ответ из java api, который содержит данные в json format.It содержит поле «имя», которое содержит данные типа «данные», «гаджеты», «другие» и т. д. Я хочу, чтобы ось x диаграммы принимала эти значения из массива json, который возвращается в ответ.Как получить данные массива json в highcharts в angularjs

Вот код для ответа в .js

for(var i=0;i<response.data.result.length;i++) 
     { 
      $scope.total=$scope.total+parseInt(response.data.result[i].item_price); 
     } 
     var j=0; 
    console.log(response.data.result); 
      while(j<response.data.result.length) 
      { 
       $scope.jsonArray=[{ 
        name:response.data.result[j].category_name, 
        y: (parseInt(response.data.result[j].item_price)/$scope.total)*100, 

       }] 
       $scope.renderChart(); 
      } 

Код для гистограммы

$scope.renderChart = function() 
{ 
    Highcharts.chart('container', { 
     chart: { 
      type: 'column' 
     }, 
     title: { 
      text: 'Your Expenses' 
     }, 
     subtitle: { 
      text: 'Your total spent money is '+$scope.total+'.' 
     }, 
     xAxis: { 
      type: 'category' 
     }, 
     yAxis: { 
      title: { 
       text: 'Money spent in percentage' 
      } 

     }, 
     legend: { 
      enabled: false 
     }, 
     credits: { 
      enabled: false 
      }, 
     plotOptions: { 
      series: { 
       borderWidth: 0, 
       dataLabels: { 
        enabled: true, 
        format: '{point.y:.1f}%' 
       } 
      } 
     }, 

     tooltip: { 
      headerFormat: '<span style="font-size:11px">{series.name}</span><br>', 
      pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>' 
     }, 

     series: [{ 
      name: 'Categories', 
      colorByPoint: true, 
      data:$scope.jsonArray 
     }] 
    }); 
} 

Я знаю, что я не могу использовать время цикла в коде ответа упоминается. Вот где я ищу help.The оси y должен рассчитать процентное значение. Я хочу генерировать «имена» для оси x и процент для оси y диаграммы. Спасибо заранее.

+0

что в консоли журнал jsonArray, проверить этот массив является правильный формат в соответствии с Highcharts апи –

ответ

0

Все мы h чтобы сделать только инициализацию jsonArray пустым, прежде чем делать цикл. Добавьте цикл for, чтобы он выполнял итерацию через массив и соответствующим образом присваивал значения. Измененный код

$scope.jsonArray = []; 
      for(var i=0;i<response.data.result.length;i++) 
      { 
       $scope.jsonArray[i]={ 
        name:response.data.result[i].category_name, 
        y: (parseInt(response.data.result[i].item_price)/$scope.total)*100, 

       } 
       $scope.renderChart(); 
       console.log(response.data.result[i]); 
      } 

    console.log($scope.jsonArray); 
    }) 

В любом случае спасибо ....

 Смежные вопросы

  • Нет связанных вопросов^_^