Como posso converter meu novo Objeto de dados que eu estou recuperando da Firebase em JSON forma como eu tinha antes

StackOverflow https://stackoverflow.com//questions/25043005

Pergunta

Eu acabei de montar o meu Firebase, angularFire banco de dados com meu Ajudante, AngularJS app.Eu uso o rígido código meus dados, antes de assim

$scope.data = [
    { name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... },
    { name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... },
    { name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... },
    ...
    ...
    More Data...
    ...
    ...
    { name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... }
]

quando eu enviei os dados acima em meu Firebase banco de dados eu tinha que ter uma forma válida de dados JSON, então eu convertido para isso

[
    { "name": "NAME", "description": "DESCRIPTION", "type": "TYPE", "ect": "ETC","ect": "ETC","ect": "ETC"... },
    { "name": "NAME", "description": "DESCRIPTION", "type": "TYPE", "ect": "ETC","ect": "ETC","ect": "ETC"... },
    { "name": "NAME", "description": "DESCRIPTION", "type": "TYPE", "ect": "ETC","ect": "ETC","ect": "ETC"... },
    ...
    ...
]

o que é válido no formato JSON.Agora, quando eu consola.log(firebaseRef), meus dados estão sendo recuperados no formulário abaixo.Isso é exatamente o que eu vejo no meu Google Chrome Console.

Object {$bind: function, $add: function, $save: function, $set: function, $transaction: function…}
    0: Object
         description: "DESCRIPTION""
         name: "NAME"
         type: "TYPE""
         etc: "ETC"
         etc: "ETC"
         etc: "ETC"
         ...more data...
         __proto__: Object
    1: Object
         description: "DESCRIPTION""
         name: "NAME"
         type: "TYPE""
         etc: "ETC"
         etc: "ETC"
         etc: "ETC"
         ...more data...
         __proto__: Object
    2: Object
         description: "DESCRIPTION""
         name: "NAME"
         type: "TYPE""
         etc: "ETC"
         etc: "ETC"
         etc: "ETC"
         ...more data...
         __proto__: Object
    ...
    ...
    ...More Data...
    ...
    ...

Como posso converter meu novo Objeto de dados que eu estou recuperando da Firebase na mesma forma como eu tinha antes?

Aqui está uma foto do a principal diferença entre os dois.A Firebase de dados que eu estou recebendo parece ser um Objeto com vários Objetos e os dados que eu precisava/usado antes é uma matriz de vários objetos.picture of two different Object data

Foi útil?

Solução

De acordo com esta url: Objeto array - conversão rápida

Você precisa atribuir a firebase objeto a uma variável:

$scope.firebaseObj

e, em seguida, você pode enchê-lo em seu $de escopo.dados do objeto:

$scope.data = [];
 for (var i = 0; i < $scope.firebaseObj.length; i++) {
      $scope.data[i]['name']= $scope.firebaseObj[i].name;
      $scope.data[i]['description']= $scope.firebaseObj[i].description;
      $scope.data[i]['type'] =  $scope.firebaseObj[i].type;
      $scope.data[i]['etc1'] =  $scope.firebaseObj[i].etc1;
      $scope.data[i]['etc12'] =  $scope.firebaseObj[i].etc2;
      .
      .
      . 
 }

Isto só irá funcionar se cada elemento em JSON tem os mesmos atributos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top