Ich benutze Firebase, um die Daten zu speichern und statistische Informationen anzuzeigen. Scheint, dass Firebase Funktionen wie groupBy nicht unterstützt, kann ich Ratschläge darüber geben, wie man es erreicht? Sollte es auf der Client-Seite gemacht werden?Angularfire2: Wie mache ich eine Gruppe mit
Antwort
Entweder es Client-Seite oder wenn möglich, speichern Sie den Gesamtwert in der Datenbank.
Sie können $ extend verwenden, um neue Features zu erstellen, die die Basisklassen verwenden, damit Sie Ihre Daten transformieren können.
Sie haben sogar ein Beispiel für eine getTotal Funktion zu schaffen: https://github.com/firebase/angularfire/blob/master/docs/guide/extending-services.md#extending-firebasearray
Das Beispiel
app.factory("ListWithTotal", ["$firebaseArray",
function($firebaseArray) {
// create a new service based on $firebaseArray
var ListWithTotal = $firebaseArray.$extend({
getTotal: function() {
var total = 0;
// the array data is located in this.$list
angular.forEach(this.$list, function(rec) {
total += rec.amount;
});
return total;
}
});
return function(listRef) {
// create an instance of ListWithTotal (the new operator is required)
return new ListWithTotal(listRef);
}
}
]);
Sie haben drei grundlegende Optionen, von denen zwei in einer anderen Antwort erwähnt wurden.
- Die Berechnung lokal durchführen.
- Jedes Mal, wenn sich die zugrunde liegenden Daten ändern, wiederholen Sie die Berechnung lokal und speichern Sie die aggregierten/gruppierten Daten irgendwo in der Datenbank und rufen Sie sie bei Bedarf ab.
- Schreiben Sie eine Firebase function, die die Daten überwacht, die sich ändern können, führt die Berechnung durch und speichert das Ergebnis irgendwo in der Datenbank. Dies könnte die beste Lösung sein, wenn Sie mit einer Menge Daten zu tun haben.
Der dritte löst mein Problem, danke Torazaburo! –
Da die dritte Option nicht frei ist, wenn die Quote, die sehr klein ist, überschritten wird, kann die zweite Option ein anderer guter Kandidat sein. :-) –
- 1. In Pandas, wie mache ich eine Gruppe von Reihen flach
- 2. Wie mache ich eine Gruppe von FloatingActionButtons in Android
- 3. Wie mache ich eine Schattenbox mit Farbverlauf?
- 4. Wie mache ich eine ListPreference mit Checkbox
- 5. Wie mache ich eine Klasseneigenschaft mit mox?
- 6. Wie mache ich eine Kurve mit UIBezierPath?
- 7. Wie mache ich eine Knopfanimation?
- 8. Wie mache ich eine Zeitsequenz?
- 9. Wie gruppiere ich eine Gruppe?
- 10. Wie mache ich eine Gruppe von auf einer if-Anweisung für eine Spalte in Spark SQL?
- 11. Wie mache ich eine Bestellung, wenn eine Gruppe von Teil der SQL ist?
- 12. hostedDomain mit Angularfire2
- 13. Mehrere Authentifizierungsmethoden mit AngularFire2
- 14. Verwenden FirebaseUI mit AngularFire2
- 15. Angular2 mit angularfire2
- 16. Überprüfung Authentifizierungsstatus mit AngularFire2 v4
- 17. Wie mache ich eine Route mit einem Modal mit Expressjs?
- 18. Wie mache ich eine "beginnt mit" Abfrage mit SQL Alchemie?
- 19. Wie mache ich eine Kommunikation Web-App
- 20. Wie mache ich eine Klinge Layout
- 21. Wie mache ich eine Schaltfläche transparent
- 22. Wie mache ich eine Ansicht 50% transparent?
- 23. Wie mache ich eine Arraylist public
- 24. Wie mache ich eine Echtzeit-Mehrfachliniengrafik?
- 25. Wie mache ich eine wirklich transparente Kontrolle?
- 26. Zend_Db_Table_Abstract - Wie mache ich eine SUMME?
- 27. Wie mache ich eine aspxdocumentviewer Richtung rtl?
- 28. Wie mache ich eine feste div?
- 29. Wie mache ich eine Tabelle in PHP?
- 30. Wie mache ich eine Ribbon-Navigation?
Diese Frage bezieht sich auf Angular, nicht Angular.js. –