Um Daten um einige Komponenten zu passieren habe ich einen Dienst:Pfosten-/Get Daten aus dem Dienst nicht funktioniert wie es sollte
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
@Injectable()
export class Services {
private messageSource = new BehaviorSubject<string>("lol");
currentMessage = this.messageSource.asObservable();
constructor() {
}
changeMessage(message: string) {
this.messageSource.next(message);
console.log(message);
}
}
I Zeichenfolge Message schaffen für die Übergabe von Daten enthalten, und aktuelle Nachricht für Observable. Und danach erstelle ich eine Funktion, um diese Daten zu ändern.
So, jetzt, in ngOnInit() in einer Komponente, schreibe ich:
this.data.currentMessage.subscribe(message => this.message = message);
und in der Komponente Nachricht definieren: string speichert dort Nachricht. Ich
In Funktion machen:
selectNews(news) {
this.data.changeMessage("lol3"); // string for test
}
Und danach möchte ich in einer anderen Komponente diese Zeichenfolge erhalten
Also wieder in ngOnInit, ich die gleiche Zeile kopieren und die Nachricht definieren. Aber das Konsolenlog hier zeigt mir die Zeichenkette vor der Funktion Aktion machen ....
Also war das Problem?
bearbeiten Fiddle mit allen gesamten Code:
https://jsfiddle.net/fywdzz51/
Das Ende Ihrer Post ist nicht sehr klar und es ist schwer zu helfen. Vielleicht könnten Sie den Code Ihrer anderen Komponente teilen? – Maxime
Ich füge Geige mit Code hinzu :) – Tomasz
Diese Frage ist ein echtes Durcheinander .... Es gibt keine POST-ODER GETs ... Sie wollen ** aus dem Dienst emittieren **. Ich beantworte nur ähnliche Fragen - https://stackoverflow.com/a/44130831/5452965 Sie müssen Nachrichten zwischen Ihren Komponenten ausgeben – codtex