0
votes

Lecture et itération à travers un objet JSON angulaire

J'écris un site Web angulaire et je suis nouveau sur la plate-forme. J'essaie d'obtenir des données d'un service Web au format JSON, puis il suffit de la sortir. J'ai vu de nombreux exemples où les données sont d'abord canalisées dans une matrice d'une classe / modèle. Mais j'aimerais savoir s'il y a un moyen plus facile de ne pas avoir à faire cette structure de données supplémentaire. (Ceci est une application vraiment simple)

dans ma classe dosseuse: xxx

et dans le fichier html xxx

La console voit mon objet avec mon objet, mais je reçois ce message d'erreur lorsque j'essaie de faire l'itération:

Erreur d'erreur: InvalidPipeargument: '[Objet d'objet]' Pour le tuyau 'Asyncpipe'


0 commentaires

3 Réponses :


0
votes

enfermer les témoignages | async dans des parenthèses qui est beaucoup de code nettoyant xxx

et dans le service ne s'abonne pas au HTTP Observable. La propriété Testimonials devrait être observable. xxx

Le async s'abonnera et obtenez les témoignages.


1 commentaires

Si j'essaie ceci, j'obtiens maintenant cette erreur: Erreur d'erreur: impossible de trouver un objet de support différent '[objet d'objet]' de type 'objet'. Ngfor prend uniquement en charge la liaison à des itérables tels que des tableaux.



0
votes

ou vous pouvez utiliser votre code sans le tuyau ASYNC.

<li *ngFor='let testimonial of testimonials'>
  {{ testimonial.Name }}
</li>


6 commentaires

Je reçois exactement la même erreur si j'essaie cette approche


Ngfor prend uniquement en charge la liaison à des itérables tels que des tableaux. Vérifiez les données que vous obtenez de l'observable. console.log (res); Est-ce un tableau? N'est-ce pas défini? Vous pouvez également quelles données sont transférées dans la console F12. Le tableau est-il situé dans une propriété?


Témoignages publics: Observable ; devrait être des témoignages publics: tout []; Comme l'a écrit Ajit Nikam


Sofar Ça ne fonctionne pas encore, j'ai une idée que le problème est quelque part à faire avec le tableau VS objet. Il dit un tableau mais les supports bouclés indiquent un objet autant que je sache, aucune autre approche n'a fonctionné. Voici le journal de la console pour mon code d'origine: ~~~ {Données: Array (4)} Données: Array (4) 0: {ID: "1", Nom: "ian", corps: "C'est génial "} 1: {id:" 2 ", nom:" ian ", corps:" C'est génial "} 2: {id:" 3 ", nom:" Morne ", corps:" C'est génial2 "} 3: {Id: "4", nom: "kb", corps: "Ceci est génial3"} Longueur: 4 proto : tableau (0) proto : objet ~~~


Je pense que le tableau est situé dans les données de propriété. Essayer: Testimonials.data


ou mieux changer cela.lestimonials = res.data (puis gardez: laissez témoignage des témoignages)



1
votes

L'erreur que vous obtenez à cause de la pipe ASYNC

en savoir plus sur la visite de tuyaux ASYNC en dessous du lien https://angular.io/api/common/asyncpipe

Faites des modifications ci-dessous dans votre code:

dans le fichier Typecript: xxx

dans le fichier html: xxx < / p>


0 commentaires