AngularJS google chart with dynamic data

4

Example of how my code is

http://plnkr.co/edit/hMnKAzjbkQzHWjL5p6KX?p=previewangularjs

I get the data from the webService and I organize it this way.

var avaliacoes_descTipo = [];
var avaliacoes_quantidade = [];

angular.forEach(data, function(value, key) { 
                this.push(key + ': ' + value);
                avaliacoes_descTipo[key] = value.descTipo;
                avaliacoes_quantidade[key] = value.quantidade;
 }, log_avaliacoes);

But I'm not able to put the values dynamic, put an array, I do not know, so to put it fixed, like the example below.

**{w: [
                     {V: avaliacoes_descTipo [1]},
                     {V: avaliacoes_quantidade [1]}
                 ]}
                 {w: [
                     {V: avaliacoes_descTipo [2]},
                     {V: avaliacoes_quantidade [2]}
                 ]}
]};**

I need help to make dynamic, foreach, any way I do not have to keep indexing it.?

    
asked by anonymous 15.08.2016 / 16:12

1 answer

3

Try to do the following:

app.controller('MainCtrl', function($scope) {
   var avaliacoes_descTipo = ["1", "12", "13"];
   var avaliacoes_quantidade = [1,2,3];
   var val = [];
   var i;
   var val1 = [];
$scope.avaliacoes = {};

for (i = 0; i < avaliacoes_descTipo.length; i++) {
  val = {c: [
    {v: avaliacoes_descTipo[i]},
    {v: avaliacoes_quantidade[i]}
  ]};

  val1.push(val);
}

$scope.avaliacoes.type = "PieChart";

$scope.onions = [
  {v: avaliacoes_descTipo[0]},
  {v: avaliacoes_quantidade[0]}
];

$scope.avaliacoes.data = {"cols": [
  {id: "t", label: "Topping", type: "string"},
  {id: "s", label: "Slices", type: "number"}
], "rows":
  val1

};

$scope.avaliacoes.options = {
  'title': '',
  'legend' : {'position': 'bottom'}
};

});
    
15.08.2016 / 19:04