0
votes

La recherche via des données du serveur ne fonctionne pas en angulaire

Essayer de rechercher une API EXTRAN EXTLATINAL Météo Servis.

API est testé et fonctionne bien. p>

Problème: Entrez la valeur dans la barre de recherche et la méthode de recherche principale de Servis n'est pas appelée. C'est la raison pour laquelle la demande n'est pas envoyée. P>

Je suis le tutoriel de la documentation officielle angulaire: https://angular.io/tatudial/toh-pt6#search-by-name p>

Et cela ne fonctionne pas. p>

Composant de recherche : p> xxx pré>

Service: p> xxx pré>

Quand je saisis dans la recherche de la valeur: strong>

dans la recherche Comnponent à Ngoninit () La dernière ligne de code est pas forte> appelée fonction de recherche à partir de services? p>

 switchMap((term: string) => this.weaterService.searchCities(term))


0 commentaires

3 Réponses :


0
votes

Vous avez oublié S'inscrire à Switchmap !

Selon le Documents angulaires :

Un exemple observable commence les valeurs de publication uniquement lorsque quelqu'un l'abonne. Vous vous abonnez en appelant la méthode () de l'instance, en passant un objet d'observateur pour recevoir les notifications.


4 commentaires

Je suis nouveau dans l'angulaire, pouvez-vous me donner plus d'informations sur cette réponse? Être capable d'indespérer.


J'utilise Switchmap ((Terme: String) => Ceci.weaService.SearchCrities (Terme))


peut-être est un problème cus qui est à Ngoninit? Cela s'appelle une seule fois lorsque le composant est appelé droit?


Bonjour, Switchmap ((Terme: String) => This.weenerService.SearchCouverties (Terme)). S'abonner (données => this.data = données) c'est par exemple. Bonne chance!



0
votes

Un observable ne sera déclenché que s'il est nécessaire, de dire à un observable que vous en avez besoin, vous devez vous abonner à celui-ci:

    this.searchTerms.pipe(
      // wait 300ms after each keystroke before considering the term
      debounceTime(300),

      // ignore new term if same as previous term
      distinctUntilChanged(),

      // switch to new search observable each time the term changes
      switchMap((term: string) => this.weaterService.searchCities(term))
    ).subscribe()


2 commentaires

Quand j'ai ajouté que j'ai ajouté () je reçois l'erreur: prntscr.com/n1ih7n


Je viens de faire un nouveau tableau de villes qui n'est pas observable et cela fonctionne bien. Merci!



0
votes

Votre implémentation va bien. Il vous suffit de déballer les villes code> code> observables dans votre modèle à l'aide d'un async code> tuyau. Il est recommandé d'utiliser le tuyau async code> dans la mesure du possible. Rend le code moins verbose.

faire quelque chose comme ça pourrait aider: P>

<ul>
  <li *ngFor="let city of cities$ | async">
    {{ city.name }}
  </li>
</ul>


0 commentaires