Der beste Weg, Firebase in AngularJS zu handhaben, muss sicherlich innerhalb eines Dienstes liegen, also ist es für alle Controller in der gesamten App verfügbar.
Ich kann es einfach nicht zur Arbeit bringen! ... Ich habe zuerst probiert, angularFire(new Firebase(url))
zu benutzen, in der Hoffnung, dass ich mich an den Umfang des Dienstes binden könnte, aber Angular beschwert sich, dass es nicht $watch
it.
Also habe ich angleFireCollection stattdessen wie folgt versucht:
%Vor% Allerdings ist die angularFireCollection ein Objekt, das eine Ladung von Methoden etc. enthält. Wenn ich es an einen Controller $ scope anhefte, bekomme ich nur Müll. Es beschwert sich auch, dass es die Firebase-Funktionen nicht aufrufen kann, bevor ich versuche, sie zu verwenden (z. B. Error: Firebase.push failed: second argument must be a valid function.
) ... hat jemand irgendwelche Ideen, wo ich falsch liege?
Siehe PLUNKER
Jeff hat die Frage richtig beantwortet ... Ich schreibe gerade eine Weiterentwicklung zu Jeffs Beispiel für Interessierte.
Ich habe die Erstellung des Firebase-Dienstes abstrahiert, sodass Sie dynamisch eine Instanz des von Ihnen gewünschten Firebase-Dienstes erstellen können: -
%Vor%Sie erstellen zuerst eine Instanz des Service wie folgt
%Vor% Dann können Sie den Service itemsService
in Ihre Controller injizieren. Die Instanz wird mithilfe Ihrer Firebase-URL, z. B.
Die Firebase kann nun an Ihren Controller gebunden werden, z. B.
%Vor%angepasst PLUNKER
Tags und Links angularjs firebase angularfire angularjs-service