2015-12-30 16 views
5

Próbuję pobrać dane z Firebase do mojego kodu HTML za pomocą AngularJS. Działa dobrze, ale po dojściu do węzła podrzędnego pokazuje dane w nieoczekiwanej formie. Proszę znaleźć obrazy o szczegóły:

Json Plik że przywieźli na Firebase:

My Json File

Firebase Data Representation:

FireBase Data

dane zwrócone w HTML:

enter image description here

oczekiwań dane jako

enter image description here

W moim kontrolera Próbuję pobrać dane z Firebase jak:

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

Wartości $ rootScope nadchodzą poprawnie, ponieważ zwracają dane (które nie są w oczekiwanym formacie, tj. Z identyfikatorem $ id, wartością $, priorytetem $).

W moim HTML:

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

Proszę mi pomóc. Z góry dziękujemy za sugestie:

+1

Te nieoczekiwane atrybuty zostały opisane w dokumentacji. Są więc oczekiwane: https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-arrays.html –

Odpowiedz

0

AngularFire tworzy zsynchronizowaną tablicę z serii Firebase DataSnapshots. Migawka zawiera dane, a także inne przydatne dane, takie jak key i priority. AngularFire używa prefiksu $, aby zawrzeć te dane dla każdego elementu w tablicy.

W twoim przypadku próbujesz zsynchronizować serię prymitywów, w celu AngularFire aby dać Ci ważne informacje lubią key, zawiera prymitywne w obiekcie, i daje dostęp do wartości pierwotnej poprzez $value własność.

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

Jeśli nie chcesz tego zachowania, to trzeba użyć $firebaseObject() lub przejść o jeden poziom wyżej w drzewie JSON.

W twoim przypadku prawdopodobnie chcesz użyć $firebaseObject().

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