2017-05-23 1 views
1

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/

+0

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

+0

Ich füge Geige mit Code hinzu :) – Tomasz

+0

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

Antwort

2

Sie bieten den Service separat für jede Komponente. Dies erzeugt unterschiedliche Instanzen in jeder Komponente. Sie sollten es an einem Ort für das ganze Modul zur Verfügung stellen

Verwandte Themen