2017-10-20 2 views
-1

J'ai ceci:Comment mettre en service sans perdre les données précédentes?

items = new ReplaySubject<Object>(1); 

    setItems(obj){ 
    this.items.next(obj); 
    } 
    getItems(){ 
    return this.items.asObservable(); 
    } 

dans le composant i ont ceci:

this.sharedData.getItems().subscribe((data) => { 
      return; 
     }) 

problème est à chaque fois que j'utilise setItems je perds les données précédentes. Toute suggestion comment puis-je éviter cela? Je veux quelque chose comme pousser dans l'ensemble pour avoir des données antérieures. Toute suggestion comment puis-je réaliser cela?

+0

Utiliser un tableau actuel? – echonax

+0

Comment ça veut dire? Je perdrai des données quand je passerai par les composants si j'utilise le tableau et non le service – None

Répondre

1

Vous pouvez définir un tableau public dans votre service (classe @Injectable). Ce serait un singleton afin que les données soient persistantes tout au long du cycle de vie de l'application. À partir des composants injectés du service, vous pouvez pousser/récupérer des éléments vers/depuis ce tableau.