¿Cómo convertiría mis nuevos datos de objetos? Estoy recuperando de Firebase a la forma de JSON como lo había hecho antes

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

Pregunta

Acabo de configurar mi base de datos de Firebase, AngularFire con mi aplicación Yeoman, Angularjs.Yo uso al código duro Mis datos antes, así

$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'... }
]

Cuando subí los datos anteriores en mi base de datos de Firebase, tuve que tener una forma válida de datos JSON, así que la convirtié a este

[
    { "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"... },
    ...
    ...
]

que es un formato JSON válido.Ahora, cuando consuelo.log (FireBasereF), mis datos se recuperan en el siguiente formulario.Esto es exactamente lo que veo en mi consola de Google Chrome.

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...
    ...
    ...

¿Cómo convertiría mis nuevos datos de objetos, estoy recuperando de la Firstbase a la misma forma que antes?

Aquí hay una imagen de la principal diferencia entre los dos.Los datos de la Firebase que estoy recibiendo parece ser un objeto con múltiples objetos en ella y los datos que quiero / usar antes es una matriz de múltiples objetos. Imagen de dos datos de objetos diferentes

¿Fue útil?

Solución

De acuerdo con esta URL: Objeto a la matriz - Conversión rápida

Debe asignar el objeto Firebase a una variable:

$scope.firebaseObj

y luego puedes meterlo en su objeto $ scope.data por:

$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;
      .
      .
      . 
 }

Esto solo funcionará si cada elemento en el JSON tiene los mismos atributos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top