Hi 
Folgendes Szenario:
Bei einem Klick werden Daten geholt (
Die Struktur im UI sieht dann so aus:
2022
--Januar
----datenpunkt
2021
--Dezember
----datenpunkt
--November
2020
--April
...
Der Code dazu sieht vereinfacht so aus:
Jetzt soll man mit einem Klick auf Monate die noch keine Daten anzeigen, welche holen können. Bei einem Klick auf 'April' im Jahr 2020 sollen nun also die entsprechenden Daten geholt werden. Dazu muss ja auch wieder
Und meine Frage ist nun, wie ich das am elegantesten lösen kann mittels Observables. Kann ich bei dem bestehenden Code beim untersten tap irgendwie mich einklinken?
So wie es jetzt ist wird ja das ganze auch nur einmalig im
Klar könnte ich jetzt einfach in einem click Handler die Methode aufrufen und das dort separat handeln. Aber es muss doch eine elegantere Variante geben, bei der die Daten alle im selben Stream gehandhabt werden können?
Folgendes Szenario:
Bei einem Klick werden Daten geholt (
fetchYearAndMonths()) - Simple Jahreszahlen und Monate, welche dann wiederum in einer For-Schleife im Gui angezeigt werden. Initial werden bei einigen Monaten darin enthaltene Daten geladen -> fetchDataForMonth() . Das sind also zwei separate calls.Die Struktur im UI sieht dann so aus:
2022
--Januar
----datenpunkt
2021
--Dezember
----datenpunkt
--November
2020
--April
...
Der Code dazu sieht vereinfacht so aus:
Javascript:
ngOninit() {
this.fetchYearAndMonths().pipe(
tap( yearsAndMonths => {
this.yearsAndMonths = yearsAndMonths;
}),
pluck('months'),
filter( month => month.loadData === true),
tap( monthsWithDataToBeLoaded => {
month.data = fetchDataForMonth()
})
).subscribe();
}
Jetzt soll man mit einem Klick auf Monate die noch keine Daten anzeigen, welche holen können. Bei einem Klick auf 'April' im Jahr 2020 sollen nun also die entsprechenden Daten geholt werden. Dazu muss ja auch wieder
fetchDataForMonth() aufgerufen werden.Und meine Frage ist nun, wie ich das am elegantesten lösen kann mittels Observables. Kann ich bei dem bestehenden Code beim untersten tap irgendwie mich einklinken?
So wie es jetzt ist wird ja das ganze auch nur einmalig im
ngOninit() getriggert. Ich muss aber via separatem Klick das fetchDataForMonth() nochmals auslösen können.Klar könnte ich jetzt einfach in einem click Handler die Methode aufrufen und das dort separat handeln. Aber es muss doch eine elegantere Variante geben, bei der die Daten alle im selben Stream gehandhabt werden können?
Zuletzt bearbeitet: