2017-09-26 8 views
-1

Laissez-moi vous expliquer ma structure du projet:
Obtenir des données à partir du serveur: J'ai fait un service, AuthenticationService
J'ai appelé ce service dans un composant & répertorié les données dans le fichier HTML: (ProductComponent & ProductComponent Fichier html)
J'ai un répertoire d'en-tête qui a un composant HTML &, Maintenant j'ai ajouté la recherche de produit dans l'en-tête, Cet en-tête est en-tête principal du site et visible pour tout le site.
Maintenant, je veux rendre la liste des produits asynchrone à travers observable. Code fichier Service:Http données API Rest avec observables

getProductList(check:any) { 
    let time = new Date(); 
    return this.http.post('/api/productslist.json?' + time.getTime(), check) 
    .map((response: Response) => { 
     let result = response.json(); 
     return result; 
    }); 
} 

Code Composant:

export class ProductlistComponent implements OnInit { 
    result: Result[] =[]; 
    filtercheck = {}; 
    constructor(private authenticationService: AuthenticationService) { 

     this.authenticationService.getProductList(this.filtercheck) 
      .subscribe(result => { 
       this.result   = result.result.list; 
      },err => { 

      } 
     ); 
    } 
} 

je besoin quand je l'appelle ce service de tout composant alors la liste des produits doit mise à jour automatique. comme je tape dans la boîte de recherche d'en-tête, puis la liste des produits doit mettre à jour automatiquement e.

J'ai essayé à travers observable, abonné, mais n'a pas réussi. Je suis confus quand je définis les données HTTP dans observable. si j'ai défini une section de succès en service observable, cela ne reflétait pas le résultat. S'il vous plaît aider
Par exemple. : URL: https://www.flipkart.com/ Comme quelqu'un tape dans l'en-tête et appuyez sur le bouton de recherche, puis mise à jour de produit mise à jour automatique. J'ai besoin de ce type de fonctionnalité

Répondre

0

Obtenir des données du serveur: I voulez-vous un get ou un message ??

service

S'il est un poste

getProductList(check:any) { 
    let time = new Date(); 
    return this.http.get('/api/productslist.json?' + time.getTime(), JSON.stringify(check) // stringfy the object 
    .map((response: Response) => response.json()); 
} 

Component

this.authenticationService.getProductList(this.filtercheck).subscribe(result => { 
    this.result = result.result.list; 
} 

Mise à jour

const eventStream = Observable.fromEvent(elementRef.nativeElement, 'keyup') 
     .map(() => this.inputValue) 
     .debounceTime(this.delay) 
     .distinctUntilChanged(); 
+0

J'ai besoin quand j'appelle ce service de n'importe quelle liste de produit de composant doit mettre à jour automatiquement. comme je tape dans la boîte de recherche d'en-tête puis la liste de produits doit mettre à jour auth –

+0

vous ne faisiez pas un stringify de l'objet de poste s'il vous plaît vérifier la réponse –

+0

Non, ce n'est pas question, J'envoie 'check' dans JSON-stringify –