Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema ao repetir uma lista

Olá,

Estou tentando fazer uma interação na lista que vem do meu back-end mas estou tendo o seguinte resultado na lista:

Isso esta sendo impresso no front.

Eu faço um GET em http://localhost:3000/v1/api/hospedagems pelo postman e recebo o resultado corretamente:

[{"_id":"59a88bb4f2f58b2500f71b69","destino":"Teste","data_entrada":"Teste","data_saida":"Teste","tipo":"Teste","__v":0}]

Meu controller esta assim:

angular.module('alurapic').controller('HosedagemController', function($scope, $http) {

    $scope.lista = [];

    $http.get("http://localhost:3000/v1/api/hospedagems")
    .then(function(data){
        $scope.lista = data;
        console.log('testeeeeee');
    }).catch(function(erro){
        $scope.mensagem = 'Deu errado!'
        console.log(erro);
    })

    };                 

});

E no AngularJS assim:

<li ng-repeat="hospedagem in lista">
    {{hospedagem._destino}}
  </li>

O que estou fazendo de errado?

3 respostas
solução!

Oii Rafael, eu não entendo muito de AngularJS porém vou tentar ajudar com algumas observações:

Parece que vc está atribuindo ao $scope.lista a Response que get retornou, e não o body (conteúdo) do retorno.

Talvez vc tenha que fazer um parse para JSON no data antes de atribuir para $scope.lista, pois a API retorna ou uma Response, ou se a promise pegar o body da Response, ele vem em texto e vc precisa transformá-lo em Object (fazendo parse para JSON). No AngularJS existe isso: data.json()?

Deve ser por isto que o ng-repeat não vai conseguir iterar no que vc precisa, pois ele espera iterar sob um Object.

Bom espero ter dado uma luz!

abraços, bons estudos

Eu tentei um data.json() ms json() não e uma função de data.

La no eu back-end eu ja retorno como json:

const lista = function(req, res) {

  model
    .find({})
    .then(function(hospedagems) {
      res.json(hospedagems);

    }, function(error) {
      console.log(error);
      res.status(500).json(error);
    });

};

Rafa, tenta fazer um console.log(typeof(data)) para ter certeza do tipo que ele ta retornando, só pra gente investigar. :)