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 :

Méthode pour afficher des enregistrements depuis une API incomplète


Sujet :

Angular

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut Méthode pour afficher des enregistrements depuis une API incomplète
    Bonjour,

    J'ai un JSON qui est ci-dessous et j'aimerai bien afficher deux variables qui sont QUANTITY et ISINCODE.

    https://jsonblob.com/944380858471825408

    Dans le JSON, vous retrouvez ces infos sur PORTFOLIO > REGROUPEMENT > ELEMENT

    Au niveau du code, la première chose que j'ai essayé de faire c'est d'afficher tous les datas en console.log, j'y suis parvenu, c'est à dire que je récupère bien les datas.

    Voici https://www.zupimages.net/up/22/07/jz4p.png

    Par contre, mon réel problème est au niveau du code TS.

    Ma méthode n'est pas complète, il me manque des éléments et je n'arrive pas à ajouter QUANTITY et ISINCODE sans avoir des bugs de compilation.

    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
    getTitles(mode: PortfolioModeEnum): void {
        this.portfolioValue = 0;
        this.lines = [];
     
        this.service.getPortfolios(mode).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
            this.portfolioValue = res.PORTFOLIO.VALPTF;
            this.lines = res.PORTFOLIO.REGROUPEMENT.map(x => {
              console.log("Data => " + JSON.stringify(res.PORTFOLIO.REGROUPEMENT));
              ???????
              return x;
            });
          }
        });
      }

    Si ça peut vous aider, voici également le fichier portfolio.response.ts.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    export interface PortfolioResponse extends ApiResponse {
        PORTFOLIO: {
            VALPTF: number;
            DETAILS: {
                ACCOUNTLAB: string;
                ACCOUNTTYPE: string;
                LABEL: string;
                ACCOUNTPHYSICAL: string;
            };
            REGROUPEMENT: InstrumentRegroupement[];
        }
    }
     
    export interface InstrumentRegroupement {
        TYPEVALUE: number;
        ASSETCATLABEL: string;
        CURRENCY: string;
        AMOUNT: number;
        PERCENTAGE: number;
        ELEMENT: {
            LABEL: string;
            STOCK: string;
            SVM: number;
            COUPONNUMBER: number;
            ISINCODE: string;
            MARKETPLACE: string;
            TYPEVALUE: number;
            ASSETCATLABEL: string;
            INSTRCURRENCY: string;
            AVERAGEDPRICE: number;
            QUANTITY: number;
            LASTPRICE: number;
            CURRENCYVALO: string;
            PRICEVARIATION: number;
            CAPITALGAINLOSS: number;
            ACCRUEDINTERESTS: number;
            VALORIZATION: number;
            VALORIZATIONEUR: number;
            DIFFER: number;
            DIFFEREUR: number;
            PERCENTAGE: number;
            BLOCKCATEGORY: string;
            BLOCKQUANTITY: number;
            AVALLOWED: string;
            PLACECODE: number;
            PLACELABEL: string;
            SECURITYPRICEVARIATIONPRC: number;
            SECURITYPRICEVARIATIONNOM: number;
            INITIALPURCHASEDATE: string;
            NOTATION: string;
            NBRORDRENOTE: number;
            PERFACHAT: number;
            REGROUP: number;
        }[];
     
        sort: { by: PortfolioSortEnum, dir: '' | 'asc' | 'desc' };
        showLine: boolean;
    }
    Je vous remercie pour votre aide et le temps que vous consacrerez à mon problème.

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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
    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
     
    getTitles(mode: PortfolioModeEnum): void {
        this.portfolioValue = 0;
        this.lines = [];
     
        this.service.getPortfolios(mode).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
               console.log(res.PORTFOLIO);
               console.log(res.PORTFOLIO.REGROUPEMENT.ELEMENT[0].QUANTITY);
          }
        );
    ça donne quoi les 2 consoles ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Hello,

    Pour la première console, voici une capture d'écran:



    Console 1 => + [object Object]


    Pour la seconde console, j'ai un message d'erreur dans VisualStudioCode

    https://zupimages.net/up/22/07/4n47.png

    Property 'ELEMENT' does not exist on type 'InstrumentRegroupement[]

    Juste pour info, j'ai déjà partager le fichier "InstrumentRegroupement" dans mon premier message au cas où.

    Pour l'instant, avec tes deux consoles mon code est présenté comme ceci:

    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
    getTitles(mode: PortfolioModeEnum): void {
        this.portfolioValue = 0;
        this.lines = [];
     
        this.service.getPortfolios(mode).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
     
              console.log("Console 1 => + " + res.PORTFOLIO);
              console.log(res.PORTFOLIO.REGROUPEMENT.ELEMENT[0].QUANTITY);
     
          }
        });
      }

    Si tu as une autre solution, je suis vraiment intéressé.

    Merci d'avance

  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
    et ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    getTitles(mode: PortfolioModeEnum): void {
        this.portfolioValue = 0;
        this.lines = [];
     
        this.service.getPortfolios(mode).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe((res: any) => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
               console.log(res);
          }
        );
    ensuite essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    getTitles(mode: PortfolioModeEnum): void {
        this.portfolioValue = 0;
        this.lines = [];
     
        this.service.getPortfolios(mode).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe((res: any) => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
               console.log(res['PORTFOLIO']);
          }
        );

  5. #5
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Bonjour,

    Pour le premier test, se sont bien les données que j'aimerai afficher en HTML.

    https://zupimages.net/up/22/07/3g0e.png

    Pour le second test, idem les donnés sont bien là, j'aperçois bien ISINCODE et QUANTITY est un peu plus en bas.

    https://zupimages.net/up/22/07/3g0e.png

  6. #6
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    @krakatoa:

    J'ai retiré "Console 1 = >" et bizarrement des infos s'affiche sur la console...


    Pour console.log(res.PORTFOLIO);

    Pareil que @Dukoid j'ai bien les donnés qui s'affichent

    https://zupimages.net/up/22/07/nuxz.png

    Pour console.log(res.PORTFOLIO.REGROUPEMENT.ELEMENT[0].QUANTITY);


    J'ai un message d'erreur

    core.mjs:6484 ERROR TypeError: Cannot read properties of undefined (reading '0')


    https://zupimages.net/up/22/07/1e50.png


    Voici comment est représenté le code de ma méthode

    https://zupimages.net/up/22/07/os2l.png

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

Discussions similaires

  1. Meilleure méthode pour envoyer des variables dans une base depuis shell
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 17/09/2014, 14h20
  2. Réponses: 5
    Dernier message: 23/04/2008, 15h41
  3. Réponses: 2
    Dernier message: 21/03/2008, 09h19
  4. Réponses: 12
    Dernier message: 18/10/2007, 10h34
  5. Réponses: 5
    Dernier message: 03/09/2007, 20h36

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