2013-06-07 3 views
0

J'ai utilisé la méthode implicite pour récupérer des objets de données:demande des objets avec angularFireCollection?

setData = function(segment){ 
    var url = 'https://myFireBase.firebaseio.com/'; 
    var rawData = angularFire(url+segment,$rootScope,'data',{}); 
    rawData.then(function(data){ 
    // sorting and adjusting data, and then broadcasting and/or assinging 
    } 
} 

Ce code est situé à l'intérieur d'un service qui est appelé à partir de différents endroits, par stades de développement, il sera probablement autour de 100 - 150 donc je suis sorti de les contrôleurs et dans un service, mais maintenant la liaison de données firebase écraserait évidemment les différents segment s donc je suis revenu à explicite methid, pour avoir les différentes firebases seulement envoyer les données sur le site au lieu de la liaison de données et de l'écriture l'autre:

var rawData = angularFireCollection(url+segment); 

Et là je dis pourquoi j'ai choisi l'implicite en premier lieu: Il y a un argument pour le typeof, je pourrais dire firebase si j'appelle une chaîne, un tableau, un objet etc. J'ai même regardé le angularfire.js et j'ai vu que si le argument n'est pas donné, si retombe à l'identifier comme un tableau par défaut.

Maintenant, je vais certainement passer à la méthode explicite (c'est-à-dire, si aucun salut ne vient avec angular2.0), et reconstruire ma base de données json pour s'adapter à la politique de tableau seul n'est pas un gros problème , mais il y a sûrement une option pour appeler explicitement des objets, ou ai-je oublié quelque chose?

+1

du code peut-être? – Ven

+0

@ user1737909, pourquoi pas .. Modifié. –

Répondre

1

Je ne suis pas totalement clair sur ce qu'est la question - avec angularFireCollection, vous pouvez certainement récupérer des objets très bien. Par exemple, dans l'application de chat fourni (https://github.com/firebase/angularFire/blob/gh-pages/examples/chat/app.js#L5):

$scope.messages = angularFireCollection(new Firebase(url).limit(50)); 

Chaque message est stocké sous la forme d'un objet, avec sa propre clé unique générée par push().

Je suis également curieux de savoir quels problèmes vous avez rencontrés lors de l'utilisation de la méthode implicite au fur et à mesure de la croissance de votre application. Nous cherchons vraiment à résoudre de tels problèmes pour la prochaine itération de angularFire!

+0

Je pense que Pan fait référence au même problème soulevé dans ces questions: https://github.com/firebase/angularFire/issues/32, https://github.com/firebase/angularFire/issues/28#issuecomment- 18584887. Vous ne pouvez pas accéder à un message en faisant des messages [messageId] ou l'équivalent. – bennlich

+0

Cela pourrait être le même problème que souligne @bennlich. –

+0

@Anant, dans cet exemple, $ scope.messages est un tableau, et je voudrais interroger un objet afin que je puisse y accéder avec myObject.myKey. A propos du problème que j'avais avec la croissance de l'application - c'était prévisible, je n'ai pas tout le mécanisme droit, et assigné la même variable pour dessiner deux bases de feu différentes, qui évidemment ont écrasé l'autre. –

Questions connexes