Ich habe eine Reihe von Observablen.Abonnieren nach Abmelden()
Auf meiner ngOnInit()
Methode initialisiere ich meine Abonnements.
this.lineOrdersSub[line.$key] = this.af.database.list(this.businessService.path + 'line_orders/' + line.$key)
.subscribe((lineOrders) => {
this.line_orders[line.$key] = lineOrders;
});
Ich habe auch ein Kontrollkästchen für jedes Abonnement. Wenn das Kontrollkästchen aktiviert ist (Standard), ist das Abonnement aktiv (Abonnement für neue Daten).
Wenn ich ein Kontrollkästchen deaktivieren, ich dies tun:
unCheckmethod() {
this.lineOrdersSub[line.$key].unsubscribe(); //Unsubscribe to my subscription
this.line_orders[line.$key] = null; // Remove the data I get after the subscription (See first code snippet)
}
Meine uncheck Methode funktioniert gut, aber nach dem ich versuche, das Abonnement zu beginnen wieder mit:
checkMethod() {
this.lineOrdersSub[line.$key].subscribe();
}
erhalte ich:
this.lineOrdersSub[line.$key].subscribe is not a function
Meine Frage:
- Wie kann ich ein Abonnement abonnieren, nachdem ich
unsubscribe
? Falls unmöglich, können Sie sich einen anderen Weg vorstellen, dies zu tun?
Danke Martin, korrigieren Sie mich, wenn ich falsch liege - ich muss erklären 1. Abonnement, 2. Observable des gleichen Elements mit 2 verschiedenen Variablen? Muss ich wieder alles in meinem on-init-Abonnement schreiben? – TheUnreal
@TheUnreal Wenn Sie sowohl abonnieren als auch abmelden möchten, benötigen Sie immer zwei Variablen. Eines, das das Observable enthält (das heißt, Sie werden 'subscribe (...)' nennen) und ein anderes, das das Subscription-Objekt enthält, das von 'subscribe (...)' zurückgerufen wurde. Dort wirst du 'unsubscribe()' nennen. – martin