Ich habe einige allgemeine Fragen, ich beginne von auf Seite main.ts
Über onInit
Ich ergreife Daten von einem Mungo-Datenbank-Server, die ich in einem Array speichern.Weitergabe von Daten von Eltern zu Kind Winkel 4
Dieses Array muss in anderen Komponenten verfügbar sein. Die Art, wie ich dieses Recht jetzt tun, die unter Verwendung eines service.ts
Im Dienst Ich habe viel BehaviorSubjects
und Subjects
scheint zu funktionieren. Wenn ich also die Array-Daten von Mungo bekomme, sende ich eine Nachricht an den Dienst, und die anderen Komponenten abonnieren diese Nachricht.
ich manchmal Subject
bin mit statt BehaviorSubject
weil es Fehlermeldungen wie in HTML wirft Ich verwende *ngFor
und erwartet ein Array, keinen String ‚Standardmeldung‘.
Ich frage mich nur, ob dies ein richtiges Setup ist, um Daten zwischen den Seiten zu verschieben. Momentan benutze ich dieses Nachrichtensystem auch für Updates zu meiner Komponente. Also, wenn jemand einen Kommentar oder einen Beitrag auf meiner Website macht, sende ich eine Nachricht an meinen Dienst, die wiederum eine beobachtbare aktualisiert und meine Komponente wieder abonniert.
Gibt es bessere Möglichkeiten, um meine Website für neue Daten zu aktualisieren und gibt es eine einfache Möglichkeit zu erklären, warum ich manchmal diese Fehlermeldung von *ngFor
bekomme und in anderen Fällen nicht diesen Fehler wirft, während immer noch *ngFor
verwenden.
d. H. Wenn ich ein Observable aktualisiere, erhält die Komponente die Nachricht sofort oder erhält onInit.
Mit diesem auch die Frage, ob es Best Practice ist, die unten im Konstruktor der Komponente oder onInit
zu verwenden. Ich melde mich ab OnDestroy
.
this.newService.currentMessageComment
.takeWhile(() => this.alive)
.subscribe(message => {
service.ts
public messageSourceMarketCap = new BehaviorSubject<any>('default message');
currentMessageMarketCap = this.messageSourceMarketCap.asObservable();
public messageSourceHistory = new Subject<any>();
currentMessageHistory = this.messageSourceHistory.asObservable();
public messageSouceApi = new BehaviorSubject<any>('default message');
currentMessageApi = this.messageSouceApi.asObservable();
public messageSourceBody = new BehaviorSubject<any>('default message');
currentMessageBody = this.messageSourceBody.asObservable();
So jetzt helfe ich mehrere Nachrichten haben, die ich in einer Komponente abonnieren ist, dass der richtige Weg, es zu tun, oder es normal ist, das Meldesystem wieder zu verwenden. Oder verwende ich das Nachrichtensystem nur dann erneut, wenn ich dieselbe Variable aktualisiere? – oudekaas
Wiederverwendbarkeit ist die bessere Option, aber es hängt von Ihrem Anwendungsfall ab. Schreiben Sie immer Programme, um zu beachten, dass es gewartet werden kann, wenn ein neues Feature in Ihrem Nachrichtensystem eingeführt wird. –