How to place a while inside an angular object?

Asked

Viewed 529 times

0

I need all the lines listed in while to be listed also inside the object, but I’m only seeing the last line of the array in the object.

	$scope.eventos=data;

                  var contar = 0;

                  while (contar < 2){

                    var eventos = data[contar];
                    var titulo = eventos.titulo;
                      var titulo = [{titulo}];
                      console.log(titulo); // aqui ele lista todas as linhas do array
                      contar++

                      }


                        console.log(titulo);

                $scope.ano = 2016;


                  $scope.dataSet = [
                          {name:"Janeiro", ano:$scope.ano,
                           evento:    titulo, //aqui ele só mostra a ultima linha do array


                           index:0
                          },
                          {name:"Fervereiro",index:1},
                          {name:"Março",index:2},
                          {name:"Abril",index:3},
                          {name:"Maio",index:4},
                          {name:"Junho",index:5},
                          {name:"Julho",index:6},
                          {name:"Agosto",index:7},
                          {name:"Setembro",index:8},
                          {name:"Outubro",index:9},
                          {name:"Novembro",index:10},
                          {name:"Dezembro",index:11}
                      ],
                      $scope.current = $scope.dataSet[0],
                      $scope.next = function(){

                          var i = $scope.getIndex($scope.current.index, 1);
                          $scope.current = $scope.dataSet[i];

                      },
                      $scope.previous = function(){
                          var i = $scope.getIndex($scope.current.index, -1);
                          $scope.current = $scope.dataSet[i];
                      },
                      $scope.getIndex = function(currentIndex, shift){
                          var len = $scope.dataSet.length;
                          return (((currentIndex + shift) + len) % len)
                      }

1 answer

1

Your error is in assigning each loop a new value to the title variable.

 var titulo = [{titulo}];

The only thing this code does is turn the variable into an item in a list, but that list is reset every time that line is executed.

If you want to insert items in the same list, you can use the function push().

             var titulosList = [];
             while (contar < 2){

                var eventos = data[contar];
                var titulo = eventos.titulo;
                titulosList.push(titulo);

                console.log(titulo); // Mostra no console o título a cada laço
                contar++;

             }

             console.log(titulosList); // Mostra no console sua lista de títulos

Browser other questions tagged

You are not signed in. Login or sign up in order to post.