2017-07-08 2 views
0

Ich habe eine App und ich bekomme einige Observable Objects durch einen Datendienst. Dies ist mein Code:Angular 2 Data Service Aktualisierung beobachtbar

this.currentUser$ = dataService.getUser(authService.id); 
 
     this.currentUser$.subscribe(user => { 
 
     this.currentUser = user; 
 

 
     this.classes = dataService.getClasses(this.currentUser.school, this.currentGroup); 
 
     this.activities = dataService.getActivities(this.currentUser.school, this.currentGroup, this.currentClassId); 
 

 

 
     });

Dies funktioniert, wenn die Seite geladen wird, aber es gibt einen Knopf, der die Klassen-ID aktualisieren soll, so dass die Seite, die Aktivitäten von der vorherige Klasse anzuzeigen, aber ich kann keine Möglichkeit finden, die Observable zu aktualisieren, damit ich die Daten von einer anderen Klasse bekommen kann.

+0

Sie können eine Observable mit Beobachter aktualisieren. Es ist wahrscheinlich nur der Weg. –

Antwort

0

Verwenden Sie im click-Ereignis der Schaltfläche die Ereignisbindung, um eine Bindung an eine Methode der Komponente herzustellen. Rufen Sie in dieser Methode die Serviceart getActivities auf. So etwas wie das:

getActivitiesForClass() { 
    this.activities = this.dataService.getActivities(this.currentUser.school, this.currentGroup, this.currentClassId); 
} 
+0

Ich habe dies zuvor versucht und es hat nicht funktioniert, ich habe es erneut versucht mit "this.activities = this.dataService.getActivities (this.currentUser.school, this.currentGroup, this.currentClassId);" und jetzt tut es das. Vielen Dank. – Joseph

+0

Ich werde meine Antwort anpassen. Froh, dass es für dich funktioniert hat. – DeborahK

Verwandte Themen