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 :

Création pipe personnalisé


Sujet :

Angular

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Création pipe personnalisé
    Bonjour,

    Je viens demander de l'aide car je suis nouveau sur angular (5) et cela fait déjà pas mal d'heures que je n'arrive pas à résoudre mon problème et mes collègues ne peuvent pas m'aider...

    Je dispose d'une Map<string,string> (s'appelant titles) contenant en clefs des identifiants et en valeurs des noms.
    Mon but est d'afficher une liste de noms (dans un <mat-form-field>) qui, une fois un sélectionné, enverra une requète en back pour bla bla bla (pas important).
    Bref, j'ai découvert les pipes et voilà ce que j'ai fais :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <mat-option *ngFor="let title of titles | sortvalue" [value]="title.key">
    {{title.value}}
    </mat-option>

    cela marche bien, le problème est que les titres sont triés par ordre alphabétiques... de leur clef !
    Du coup j'ai voulu créer un pipe moi et voilà ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import { Pipe, PipeTransform } from '@angular/core';
     
    @Pipe({
      name: 'sortvalue'
    })
    export class SortvaluePipe implements PipeTransform {
     
      transform(mymap: Map<string, string>): string[] {
        return Array.from(mymap.values()).sort();
      }
    }
    Et là, fatalement cela ne marche pas... J'ai beau chercher je ne comprends pas pourquoi, j'ai une erreur dans mon navigateur : "mymap is undefined".

    Si une âme charitable pouvait m'aider, je lui en serai fort reconnaissant !

    Merci.

  2. #2
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Bonjour,

    Effectivement, ça semblait plutôt pas mal sous couvert que "titles" soit bien du type "Map<string, string>".

    Peut-être que des parenthèses aideraient ?
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <mat-option *ngFor="let title of (titles | sortvalue)" [value]="title.key"></mat-option>
    Le type de return du pipe posera peut-être aussi problème (une fois l'erreur actuelle résolue...) : est ce qu'il ne devrait pas retourner la même "Map<string, string>" ?

    En espérant que cela aide... Bon courage

Discussions similaires

  1. Création treeview personnalisé
    Par Pierrot005 dans le forum VB.NET
    Réponses: 0
    Dernier message: 04/04/2012, 09h40
  2. Création Shell personnalisé
    Par lepierrot dans le forum Linux
    Réponses: 5
    Dernier message: 10/12/2008, 23h54
  3. Création Controle personnalisé
    Par moumoune65 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/09/2007, 22h18
  4. [VBA-E] Help création d'un programme vba pour excel
    Par yampi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/01/2007, 11h46
  5. [CR]Help numero page personnalisé
    Par juelo dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 09/01/2004, 16h59

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