Come avrei convertire i miei nuovi dati dell'oggetto, sto recuperando da Firebase nella forma JSON come ho avuto prima
-
21-12-2019 - |
Domanda
Ho appena impostato il mio FireBase, il database angolare con la mia app Yeoman, Angularjs.Io uso il codice duro i miei dati prima come
$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 ho caricato i dati di cui sopra nel mio database di FireBase ho dovuto avere una forma valida di dati JSON, quindi l'ho convertito a questo
[
{ "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"... },
...
...
]
.
che è valido formato JSON.Ora, quando ho console.log (Firebaseref), i miei dati vengono recuperati nel modulo sottostante.Questo è esattamente quello che vedo nella mia console di 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...
...
...
.
Come avrei convertire i miei nuovi dati dell'oggetto, sto recuperando da Firebase nello stesso modulo che ho avuto prima?
Ecco un'immagine della differenza principale tra i due.I dati di Firebase che ricevo sembrano essere un oggetto con più oggetti in esso e i dati che desideri / usati prima sono una matrice di più oggetti.
Soluzione
Secondo questo URL: Oggetto da array - Conversione rapida
È necessario assegnare l'oggetto Firebase a una variabile:
$scope.firebaseObj
.
E poi puoi riempirlo nell'oggetto $ scope.Data da:
$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;
.
.
.
}
.
Questo funzionerà solo se ogni elemento nel JSON ha gli stessi attributi