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 :

Afficher les détails en fonction d'un ID


Sujet :

Angular

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Afficher les détails en fonction d'un ID
    Bonjour chers tous,

    J'utilise Ionic/angular 11

    J'affiche une liste de numéro d'abonnement et je souhaiterais en fonction d'un numéro d'abonnement sélectionné, afficher les informations en rapport avec ce numéro.
    sélectionné.
    Nom : liste_abonnment.png
Affichages : 686
Taille : 235,7 Ko

    Ma démarche:

    ma page 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
          <ion-row *ngFor="let payLoad of PayloadData">
            <div *ngIf= "payLoad.STATUS !== '4'">
              //je récupère dans mon lien ahref le numéro d'abonnement
              <a routerLink="/details-abonnement/{{payLoad.SUBS_ID}}"><ion-col >{{payLoad.SUBS_ID}}</ion-col></a>
              <ion-col>{{payLoad.SOLDE }} FCFA</ion-col>
            </div>
            <ng-container *ngFor="let tag of payLoad.TAGS" size="auto">
              <div *ngIf="tag.STATUS === '1'">
                <ion-col>{{tag.TAG_ID}}</ion-col> 
              </div>
              <div *ngIf="tag.STATUS !== '1'">
                <del>{{tag.TAG_ID}} - </del>
              </div>
            </ng-container>
            </ion-row>

    je voudrais dans ma page TS:
    récupère ce numéro sélectionné et le mettre dans une requête pour interrogé une API, puis avec les résultats obtenu les afficher dans une page DetailsAbonnement.
    Code : 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
    27
    28
    29
    30
    31
    constructor(  
        private http: HttpClient,  
        public authService: AuthService,
        private nativeStorage: NativeStorage,
        public LocalServ: LocalService)
          {
            this.getHistorique()
          }
     
        ngOnInit() {
     
        }
     
     getHistorique() {
          le lien de mon API
          let url = "http://www.site.com/ipingea/?action=GST&customerID=" + {{payLoad.SUBS_ID}};
          console.log(url);
          this.http.get(url)
            .subscribe(
               async (res: any[]) => 
               {
                this.idty = res;
                console.log('affiche le tableau des historiques');
                console.log(this.idty);
                this.PayloadData = this.idty.PAYLOAD;
              },
     
               async (err: any[]) => {
                console.log(err);
             });
        }
    je voudrais savoir si je m'y prend bien.

    Salutations sincères

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    ça va, juste quelques points :

    (1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    let url = "http://www.site.com/ipingea/?action=GST&customerID=" + {{payLoad.SUBS_ID}};
     
    faire plutôt :
     
    let url = `http://www.site.com/ipingea/?action=GST&customerID=${payLoad.SUBS_ID}`;      // `  <- c'est les anti-cotes : ALT GR + 7
    (2)
    mais : payLoad.SUBS_ID tu le récupère comment ?

    pour info, quand tu as un chemin avec un paramètre : http://www.site.com/ipingea/?action=...stomerID=12345
    il faut utiliser le service router pour récupérer le paramètre dans l'url !

    (3)
    faudrait mettre : "http://www.site.com"
    dans une variable d'environnement, pour avoir :

    environment.ts et environment.prod.ts et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import { environment ....
     
    let url = `${environment.url}/ipingea/?action=GST&customerID=${payLoad.SUBS_ID}`;

    (4) async ne sert à rien !

    (5) après la méthode du get http, la bonne pratique est de le mettre dans un service
    et le composant appel ce service pour faire le get

    rappel bonne pratique :
    on classe le code métier dans des services
    les composants qui doivent avoir le minimum de code font appels à ces services

    par exemple, disons que je gère des produits, je classe par thème et responsabilité
    * api-product.service.ts <----- à la responsabilité de faire des requêtes <--- le thème est les produits <------ toutes les fonctions de requêtes http .; get http getProducts() get ProductbyId(....
    * product.service.ts <------ à la responsabilité de faire des manipulation diverses <-- le thème est les produits <----- toues les fonctions avec le code métier diverses : des calculs....

    les composants font appels à : api-product.service.ts et product.service.ts


    résultat : c'est vrai qu'au début on perd un peu de temps pour classer.. mais ensuite on gagne en maintenance, en visibilité et même au final on gagne du temps

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    (2)mais : payLoad.SUBS_ID tu le récupère comment ?
    a cette question : je répondrais ceci (page html)
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a routerLink="/details-abonnement/{{payLoad.SUBS_ID}}"><ion-col >{{payLoad.SUBS_ID}}</ion-col></a>

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    (2)
    je voulais dire dans le composant pas dans le template

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    ah d'accord, c'est justement a ce niveau que je bloque, je sais pas comment récupérer dans mon composant.
    stp aurais-tu une technique?

    Je veux pouvoir récupérer a partir de mon template, pour faire ma requête dans mon composant dans la fonction : getDetailsAbonnement()

    Code : 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
    constructor
      (
        private http: HttpClient,  
        public authService: AuthService,
        private nativeStorage: NativeStorage,
        public alertController: AlertController,
        private activatedRoute: ActivatedRoute,
        private router: Router){ this.getDetailsAbonnement}
     
      ngOnInit() {
     
      }
     
      getDetailsAbonnement(payLoad) {
     
        let url = `http://www.site.com/ipenge/?action=GST&customerID=${payLoad.SUBS_ID}`;
     
     
      }

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    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
    15
    16
    17
    18
     
    ngOnInit() {
     
        this.activatedRoute.fragment.subscribe((fragment: string) => {
     
          console.log(fragment);// OUTPUT ?productid=1543&color=red
     
          const urlParams = new URLSearchParams(fragment);
     
          const productid = urlParams.get('productid')
          console.log(productid); // OUTPUT 1543
     
          const color = urlParams.get('color')
          console.log(color); // OUTPUT red
     
        })
     
      }

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci Krakatoa pour ton aide, j'ai un question:
    comment donc récupérer le numéro d'abonnement (payLoad.SUBS_ID) dans le template(abonnement.html) pour le traiter dans le component(detailsAbonnement.ts):

    mon template:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <a routerLink="/details-abonnement/{{payLoad.SUBS_ID}}"><ion-col >{{payLoad.SUBS_ID}}</ion-col></a>
    mon component:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     constructor
      (
        private http: HttpClient,  
        public authService: AuthService,
        private nativeStorage: NativeStorage,
        public alertController: AlertController,
        private activatedRoute: ActivatedRoute,
        private router: Router
    )
    { this.getDetailsAbonnement}
     
    getDetailsAbonnement(){
     let url = `http://www.site.com/ipeang/?action=GST&customerID=${payLoad.SUBS_ID}`;
        console.log(url);
    }
    voici ce que je fais, est-ce bien fait?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    on trouve pas mal de tuto... faut chercher un peu

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    par exemple tu tapes : angular 11 routing with parameters

    si tu n'y arrive pas, met le code qu'on regarde ça

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/09/2011, 16h56
  2. Réponses: 5
    Dernier message: 13/07/2010, 12h06
  3. afficher les détails dans la zone de données TCD
    Par alimhassa dans le forum Excel
    Réponses: 6
    Dernier message: 22/06/2010, 09h43
  4. [PHP 5.3] Ne pas afficher les warnings des fonctions obsolètes
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 29/09/2009, 14h59
  5. Afficher les détails des Indexes
    Par memos dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/05/2006, 19h19

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