2017-04-08 3 views
1

Ich habe eine ng-repeat, die mit einem firebaseArray verbunden ist, das ein Index für die IDs eines Benutzers ist. Ich möchte eine Liste ihrer Dokumente mit zusätzlichen Informationen für jede z. Es ist Titel und Beschreibung.AngularFire - Erhalte ein firebaseObject für jedes Element in einem FirebaseArray ng-repeat

Meine Feuerbasis Struktur ist:

+users 
    - userId1 
    -theirDocs 
     -docId1: true 
     -docId2: true 

+docs 
    -docId1 
     - tile 
     - description 
     - url 
    -docId2 
    - etc etc 

ich alles versucht habe, und kann immer noch nicht bekomme dies funktioniert, scheint es einen ziemlich verbreiteten Anwendungsfall. Ich habe versucht, eine Funktion zu verwenden, die jedes Mal ein FirebaseObject aufruft. Ich habe versucht, einen separaten Controller zu verwenden. Ich habe eine Direktive ausprobiert, ich habe sogar versucht, die firebase.utils-Bibliothek zu benutzen (ich denke jetzt veraltet).

Kann jemand den besten Weg empfehlen, dies mit AngularFire zu tun? Danke im Voraus!

Antwort

0

Es wäre besser, ein Code-Snippet zu sehen, um zu verstehen, was Sie zuerst versucht haben, da es schwierig ist zu bestimmen, wo die Probleme liegen. Abgesehen davon, dass Ihre Regeln dies nicht verhindern, müssen Sie möglicherweise vorher auf das Herunterladen der Daten mit der Funktion $ loaded warten.

Beispiel

Dieses Beispiel ist über diesen link deutlich vorhanden, aber hier ist ein Beispiel für eine weitere Klarheit:

var yourFirebaseReference = firebase.database().ref("REPLACE WITH YOUR FIREBASE BRANCH HERE"); 
var data = $firebaseArray(yourFirebaseReference); 
data.$loaded().then(function(x) { 
    console.log(data) // Example, you can do what you want with your 'data' now as the data has loaded 
    x === data; // true 
}).catch(function(error) { 
    console.log("Error:", error); 
}); 
+0

Dank ich es jetzt hinzufügen würde. War wirklich daran interessiert, zu verstehen, was wäre der beste Weg, dies mit angularfire zu tun, um diese Art von Abfrage zu lösen –

+0

Vorausgesetzt, dass die $ loaded-Funktion Ihr Problem löst, ist dies auf die Zeitverzögerung des Wartens auf die Dàta zu laden der Server. Hoffe, dies hilft Ihr Problem zu lösen und bitte akzeptieren Sie die Antwort, wenn dies der Fall ist. –

+0

Ja, das hat es behoben! Vielen Dank! Ich habe gerade einen Operate-Controller erstellt, der für Listenelemente verwendet wird, und dann darauf geachtet, $ loaded zu verwenden und dann auf eine Scope-Variable anzuwenden, und es funktioniert einwandfrei! Auch ich bin neu hier, nicht sicher, wie man eine Antwort akzeptiert ... –

Verwandte Themen