2017-04-08 1 views
1

J'ai une ng-repeat qui est connectée à un firebaseArray qui est un index des IDs d'un utilisateur. Je souhaite afficher une liste de leurs documents avec des informations supplémentaires pour chacun d'eux, par ex. c'est le titre et la description.AngularFire - Récupère un objet firebaseObject pour chaque élément dans un firebaseArray ng-repeat

Ma structure est firebase:

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

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

J'ai tout essayé et ne peut toujours pas obtenir ce travail, il semble un cas d'utilisation assez commun. J'ai essayé d'utiliser une fonction qui appelle un firebaseObject à chaque fois. J'ai essayé d'utiliser un contrôleur séparé. J'ai essayé une directive, j'ai même essayé d'utiliser la bibliothèque firebase.utils (je pense que c'est démodé maintenant).

Quelqu'un peut-il recommander le meilleur moyen de le faire en utilisant AngularFire? Merci d'avance!

Répondre

0

Il serait préférable de voir un fragment de code pour comprendre pleinement ce que vous avez essayé en premier, car il est difficile de déterminer où se trouvent les problèmes. Cela étant dit, tant que vos règles ne l'empêchent pas, vous devrez peut-être attendre que les données soient téléchargées à l'aide de la fonction $ loaded au préalable.

EXEMPLE

Cet exemple est clairement disponible en suivant ce link, mais voici un exemple pour plus de clarté:

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

Merci, je vais l'ajouter maintenant. Était vraiment désireux de comprendre ce qui serait la meilleure façon de faire cela avec angularfire, pour résoudre ce type de requête –

+0

Si la fonction $ loaded résout votre problème, cela est dû au délai d'attente de chargement de la dàta. le serveur. J'espère que cela aidera à résoudre votre problème et s'il vous plaît accepter la réponse si c'est le cas. –

+0

Oui qui l'a réparé! Merci beaucoup! Je viens de faire un contrôleur d'exploitation à utiliser pour les éléments de la liste, puis fait en sorte d'utiliser $ chargé puis l'appliquer à une variable de portée et cela fonctionne parfaitement! Aussi je suis nouveau ici, je ne sais pas comment accepter une réponse ... –