2016-05-09 6 views
1

Ich versuche, durch Elemente von firebase zu wiederholen. Ich habe sie in der Konsole. Aber die Ausdrücke funktionieren nicht. Ich bin nicht sicher, was zu tun ist und habe alles versucht. Jede Hilfe wäre großartig. Dankng-Wiederholung durch Elemente von Firebase

Bild der Konsole hier:

enter image description here

//js 
firebaseRef.once("value", function(snapshot) { 
    $timeout(function(){ 
     $scope.boats = snapshot.val(); 
     console.log($scope.boats); //image of console up^ 
    }, function (errorObject) { 
     console.log("The read failed: " + errorObject.code); 
    },0); 
}); 

//html 
    <div class="row pad" ng-repeat="boat in boats"> 
     <span class='text-center' >{{boat.title}}</span> 
    </div> 
+0

Sind Sie sicher, Ihre HTML-Inhalte die gleiche Steuerung wie Feuerbasis enthält? Versuchen Sie, komplette Inhalte in HTML mit '{{boats}}' zu drucken. Wenn nicht, dann versuchen Sie zuerst, dieses Problem zu lösen. –

+0

@VikramTiwari, ich habe nur einen Controller, aber die {{boote}} funktioniert nicht. entweder. Irgendwelche Vorschläge, wie ich das angehen sollte? Danke –

+0

Versuchen Sie '$ scope. $ Apply()' hinzuzufügen, nachdem Sie Booten einen Wert zugewiesen haben. – Clint

Antwort

3

Die Daten werden als boat.Title gespeichert ist, sondern zugegriffen wird als boat.title

2

@funador korrekt ist, müssen Sie boat.Title statt boat.title.

Allerdings sollten Sie in die Verwendung von AngularFire for Angular 1 schauen, um Ihr Leben ein bisschen einfacher zu machen.

AngularFire synchronisiert Sammlungen mit der Firebase-Datenbank und der $digest-Schleife.

angular.module('app', ['firebase']) 
    .constant('FirebaseUrl', '<my-firebase-app>') 
    .controller('MyCtrl', MyController) 
    .config(function($firebaseRefProvider, FirebaseUrl) { 
    $firebaseRefProvider.registerUrl({ 
     default: FirebaseUrl, 
     boats: FirebaseUrl + '/boats' 
    }); 
    }); 

function MyController($scope, $firebaseRef, $firebaseArray) { 
    $scope.boats = $firebaseArray($firebaseRef.boats); 
} 

AngularFire können Sie Ihre Referenzen in der config Phase geben Sie den $firebaseRefProvider verwenden. Dann können Sie den Service $firebaseRef injizieren.

Eine $firebaseArray synchronisiert automatisch Änderungen an Ihrer Vorlage. Um einen zu erstellen, übergeben Sie boats den Verweis auf das Array.

Was ist toll daran ist, dass es keine $timeout benötigt. AngularFire verarbeitet es für Sie.

Und Ihr ng-repeat ist immer noch das gleiche:

<div class="row pad" ng-repeat="boat in boats"> 
    <span class='text-center' >{{boat.title}}</span> 
</div> 
Verwandte Themen