Comment convertira mes nouvelles données d'objet que je récupère de Firebase au formulaire JSON comme je l'avais auparavant
-
21-12-2019 - |
Question
Je viens de configurer ma base de données Firebase, Angularfire avec mon application Yeoman, Angularjs.J'utilise au code difficile mes données avant de comme si
$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'... }
]
Lorsque j'ai téléchargé les données ci-dessus dans ma base de données Firebase, je devais avoir une forme valide de données JSON, donc je l'ai converti sur cette
[
{ "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"... },
...
...
]
qui est un format JSON valide.Maintenant, lorsque je console.log (Firebaseef), mes données sont extraites dans le formulaire ci-dessous.C'est exactement ce que je vois dans ma console 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...
...
...
Comment convertiriez-vous mes nouvelles données d'objet que je récupère de Firebase dans le même formulaire que je l'avais auparavant?
Voici une image de la principale différence entre les deux.Les données de Firebase que je reçoivent semble être un objet avec plusieurs objets dedans et les données que je souhaites / utilisées avant d'être un tableau de plusieurs objets.
La solution
Selon cette URL: objet à tableau - conversion rapide
Vous devez attribuer l'objet Firebase à une variable:
$scope.firebaseObj
Et puis vous pouvez le transformer dans votre objet $ de portée.Data par:
$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;
.
.
.
}
Ceci ne fonctionnera que si chaque élément du JSON a les mêmes attributs