IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Affichage de données dans des SLIDES


Sujet :

Angular

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Par défaut Affichage de données dans des SLIDES
    Bonjour,

    Je viens vers vous car j'ai un petit problème, je récupère un tableau de données d'une API que j'exploite avec "map" mais l'inconvénient c'est que je n'arrive pas a trouver la solution pour afficher les noms que je récupère dans cette boucle dans mes slides.

    Je vous montre que j'arrive bien à récupérer les deux noms dans le console.log :
    Nom : Capture d’écran 2022-08-05 à 15.14.56.png
Affichages : 365
Taille : 129,1 Ko

    Puis le code de mon fichier ts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    alternativeProducts(categories:any) {
        this.http.get('http://127.0.0.1:8001/api/products/liste/'+ categories)
        .subscribe((dataApi:any) =>{
          // console.log(dataApi);
          dataApi.map(p=>{
            p.name;
            p.description;
          })
            console.log(dataApi.map(p=>p.name));
        })
      }
    Ainsi que mon code HTML:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <div id="accordion">
          <ul>
            <li>
              <input type="checkbox" checked>
              <i></i>
              <h2>Trouver un produit similaire</h2>
                <!-- <ion-card>
                  <ion-item>
                    {{nameProduct}}
                  </ion-item>
                </ion-card> -->
                <ion-slides [options]="option" margin="ion-margin-top">
                  <ion-slide>
                    <ion-card>
                      {{p.name}}
                    </ion-card>
                  </ion-slide>
                </ion-slides>
            </li>
            <li>
              <input type="checkbox" checked>
              <i></i>
              <h2>Blablablabla</h2>
            </li>
          </ul>
        </div>

    En espérant qu'un de vous pourra m'aider.
    Bien cordialement,
    Alexandre

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    déjà, je vois du rouge dans la console. ce n'est pas bon et empeche l'execution de la suite du code.

    ensuite tu récupères des données de l'api mais il faut le passer à la vue... tu ne semble pas le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    product: any;    // pour la vue
    ...
    ...
    alternativeProducts(categories:any) {
        this.http.get('http://127.0.0.1:8001/api/products/liste/'+ categories)
        .subscribe((dataApi:any) =>{
          this.product = dataApi.map(p=>{
            p.name;
            p.description;
          })
        })
      }
    template
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    {{ product.name }}
    {{ product.description}}

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Par défaut
    Bonjour,
    Merci pour ton aide mais malheureusement ça ne fonctionne pas.
    Oui, le rouge c'est car il y a un problème au niveau de la récupération de la variable.

    J'espère trouver une solution rapidement.

    Bien cordialement,
    Alexandre

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    désolé j'ai écrit de la merde ! pas vu le nombre....
    donc il y a plusieurs produits


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    products: any;    // pour la vue
    ...
    ...
    alternativeProducts(categories:any) {
        this.http.get('http://127.0.0.1:8001/api/products/liste/'+ categories)
        .subscribe((dataApi:any) =>{
          this.products = dataApi.map(p=>{
            p.name;
            p.description;
          })
          console.log("products", this.products);   // on vérifie les données dans la console au cas ou !
        })
      }

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div *ngFor="let product of products">
       {{ product.name }}
       {{ product.description}}
    </div>

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Par défaut
    Bonjour,

    Ça me renvoie "undefined". Je ne comprend pas pourquoi cela ne fonctionne pas.

    Nom : Capture d’écran 2022-08-08 à 11.13.37.png
Affichages : 295
Taille : 268,0 Ko

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    products: any;    // pour la vue
    ...
    ...
    alternativeProducts(categories:any) {
        this.http.get('http://127.0.0.1:8001/api/products/liste/'+ categories)
        .subscribe((dataApi:any) =>{
          this.products = dataApi.map(p=>{
            name: p.name;
            description: p.description;
          })
          console.log("products", this.products);   // on vérifie les données dans la console au cas ou !
        })
      }

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Par défaut Afficher une image récupéré d'une API pour chaque produit
    Bonjour à tous,

    J'ai créé une API qui récupère des données dans une bdd phpmyadmin puis je les envoie sur mon app Angular.
    J'affiche ces données dans des slides mais je ne vois pas comment faire pour que l'image s'affiche, pour le moment j'affiche juste le nom de l'image.
    Comment faire pour que ce soit l'image qui s'affiche et non le nom ?

    fichier ts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    alternativeProducts(categories:any) {
        this.http.get('http://127.0.0.1:8001/api/products/liste/'+ categories)
        .subscribe((dataApi:any) =>{
          this.products = dataApi.map(p=>({
            image: p.image,
            name: p.name,
            description: p.description
          }));
            console.log(dataApi);
            console.log("products", this.products);
        })
    fichier html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ion-slides [options]="option" margin="ion-margin-top">
                  <ion-slide *ngFor="let product of products">
                    {{ product.image}}
                    {{ product.name }}
                    {{ product.description}}
                  </ion-slide>
                </ion-slides>

    Screen de la page avec la console:
    Nom : Capture d’écran 2022-08-09 à 14.04.36.png
Affichages : 292
Taille : 137,7 Ko

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    mais je ne vois pas comment faire pour que l'image s'affiche, pour le moment j'affiche juste le nom de l'image.
    il te faut mettre le nom (du fichier) de l'image dans une balise <img> dans l"attribut src comme on le fait en HTML.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Par défaut
    Bonjour,

    J'ai déjà essayé de faire ce vous m'avez dit et ça ne fonctionne pas.
    Je pense qu'il y a une manière particulière pour afficher les images qui viennent d'une API. C'est sur ça que j'aimerai avoir des informations.

    Bien cordialement

  10. #10
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Par défaut
    Je vous montre comment j'ai essayé de faire ça.

    ts:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    alternativeProducts(categories:any) {
        this.http.get('http://127.0.0.1:8001/api/products/liste/'+ categories)
        .subscribe((dataApi:any) =>{
          this.products = dataApi.map(p=>({
            image: p.image,
            name: p.name,
            description: p.description
          }));
            console.log(dataApi);
            console.log("products", this.products);
        })
      }
    html:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ion-slides [options]="option" margin="ion-margin-top">
                  <ion-slide *ngFor="let product of products">
                    <img id="myimage" [src]='product.image' />
                    {{ product.name }}
                    {{ product.description}}
                  </ion-slide>
                </ion-slides>

    screen résultat:
    Nom : Capture d’écran 2022-08-10 à 08.22.56.png
Affichages : 165
Taille : 156,3 Ko

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Si les erreurs 404 concernent les fichiers images il serait bon de vérifier le chemin d'accès à ces fichiers, ils doivent également faire partie de l'attribut src.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2010, 13h14
  2. affichage données dans des tabs
    Par cdespont dans le forum VBA Access
    Réponses: 0
    Dernier message: 25/01/2008, 15h43
  3. [VB.NET] affichage de données dans un combobox
    Par lou87 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/02/2006, 10h25
  4. Affichage de donnée dans une page
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 21/02/2006, 17h54
  5. Réponses: 3
    Dernier message: 11/01/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo