Verwendung von ng-grid mit angularFire - Probleme bei der Benennung von Schlüsseln

8

Ich habe schon ein bisschen mit dem herumgespielt, aber ich kann es nicht verstehen:

(Mit eckiger 1.2.2, angularFire 0.5.0 und dem letzten ng-Gitter)

Ich habe also eine Firebase und verwende angularFire, um meine Daten in eine ng-Grid-Komponente wie folgt zu extrahieren:

%Vor%

Funktioniert super und ich habe Kontrollen gemacht, die neue Dinge zu "Noten" hinzufügen (push) und Elemente entfernen (splice) und alles wird gut in das ng-Gitter reflektiert. Wie so:

%Vor%

Aber dieser Ansatz führt automatisch generierte int-basierte Schlüssel zum Firebase, die sich bei der Änderung ständig ändern, so dass ich die Kontrolle über die Schlüssel bekommen wollte, also änderte ich das Hinzufügen der zu verwendenden Elemente:

%Vor%

Und alles funktioniert ok, indem ich die Daten mit meinen nicht ganzzahligen IDs in den Firebase speicher, aber es bindet nicht mehr an das ng-Grid. Wenn Sie die "Noten" in die Konsole ablegen, werden alle zurückgegebenen Zeilen angezeigt, sie werden jedoch nicht im ng-Grid angezeigt.

Kurz gesagt: Integer-basierter Index, der von angularFire erzeugt wird, funktioniert in ng-grid gut, benutzerdefinierte alphanumerische, die von firebase.push erstellt wurden, funktioniert nicht.

Ich hoffe, es klingt nicht zu kryptisch. Ich dachte daran, eine Geige zu spielen, aber lass uns hoffen, dass es ein 'Gotcha' ist, den ich übersehen habe und einfach zu lösen. Wenn nicht, werde ich versuchen, einen zu reparieren.

Danke!

    
Timo Wallenius 03.12.2013, 06:40
quelle

1 Antwort

5

Gemäß der Dokumentation gibt $ firebase immer Objekte zurück, nicht Arrays, die nicht t so gut mit ng-Grid. In diesem Fall stellt angularfire einen Filter zur Verfügung, orderByPriority. Stellen Sie sicher, dass Sie $ filter in Ihren Controller injizieren.

( Hinweis: Ich habe keine Versprechungen oder Beobachter verwendet, nur die eingebauten Ereignisse mit angularfire )

%Vor%

Sie können einen ähnlichen Ansatz für $ on. ('change' ...) für neue Zeilen ausprobieren.

hoffe das hilft

    
realgt 17.12.2013 15:10
quelle