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:
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:
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.