2015-12-30 17 views
5

Ich versuche, Daten von Firebase in meinem HTML mit AngularJS zu erhalten. Es funktioniert gut, aber wenn ich den Kindknoten erreiche, zeigt es Daten in unerwarteter Form an. finden Sie die Bilder für Details:

JSON-Datei, die ich auf Firebase importiert haben:

My Json File

Feuerbasis Data Representation:

FireBase Data

Daten

in HTML Retour:

enter image description here

erwarteten Daten als

enter image description here

In meinem Controller ich versuche zu bekommen Daten von Firebase als:

Die $ rootScope-Werte werden korrekt zurückgegeben, da sie Daten zurückgeben (was nicht im erwarteten Format ist, dh mit $ id, $ value, $ priority).

In meinem HTML:

<div class="content has-header"> 
     <h2>{{details[0]}}</h2> 
</div> 

Bitte helfen Sie mir. Vielen Dank im Voraus für Ihre Vorschläge

+1

Diese unerwarteten Attribute sind in der Dokumentation beschrieben. Sie werden also tatsächlich erwartet: https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-arrays.html –

Antwort

0

AngularFire erstellt ein synchronisiertes Array aus einer Reihe von Firebase DataSnapshots. Der Snapshot enthält die Daten sowie andere nützliche Daten wie die key und priority. AngularFire verwendet das Präfix $, um diese Daten für jedes Element im Array einzuschließen.

In Ihrem Fall versuchen Sie, eine Reihe von Primitiven zu synchronisieren, damit AngularFire Ihnen wichtige Informationen wie die key gibt, das Grundelement in einem Objekt enthält und über die $value auf den primitiven Wert zugreifen kann Eigentum.

Check out the AngularFire docs on meta fields for more information.

Wenn Sie dieses Verhalten nicht wünschen, dann müssen Sie entweder $firebaseObject() verwenden oder eine Ebene höher gehen im JSON-Baum.

In Ihrem Fall möchten Sie wahrscheinlich eine $firebaseObject() verwenden.

$scope.locService = $rootScope.service; 
var serviceRef = new Firebase(FIREBASE_URL+"ABC/location/"+$rootScope.location+"/services/"+$rootScope.service+"/"+$rootScope.serviceDetail+""); 
$scope.details = $firebaseObject(serviceRef); 
Verwandte Themen