2017-08-25 3 views
0

Ich möchte einen Dienst in der AppComponent aufrufen, um einige Daten abzurufen, dann möchte ich es an eine andere Komponente senden, die zu einem anderen Zeitpunkt geladen wird. Wie kann ich sicherstellen, dass die Daten in der anderen Komponente erfasst werden können? Ich möchte, dass diese Einrichtung die API-Aufrufe minimiert, da dieselben Daten, die wir von der API erhalten, an zwei bis drei Stellen wiederverwendet werden.Daten von AppComponent zu einer anderen Komponente, die zu einer anderen Zeit lädt

+0

ist Ihre andere Komponente eine Kindkomponente des ersten oder eines Geschwisters? Und Sie möchten einen Service anrufen ... haben Sie auch einen injizierbaren Service erstellt? – Carsten

+0

ist es Kind des Kindes –

Antwort

0

Sie möchten die Daten in einem global injizierbaren Service speichern. In diesem Service sollten Sie ein BehaviorSubject definieren. Siehe unten.

@Injectable() 
export class DataService { 

    // Can subscribe to and emit events from a BehaviorSubject 
    // BehaviorSubject can act like an event bus but will also return the last value in the stream upon subscription 
    public userSubject = new BehaviorSubject(null); 

} 
0

Sie können einen BehaviorSubject in Ihrem Service verwenden. Wenn die später geladene Komponente den Service injiziert und die BehaviorSubject abonniert, erhält sie sofort den letzten ausgegebenen Wert.

+0

Ja, es hat funktioniert. Vielen Dank –

Verwandte Themen