Anglar6 tutorial
A tutorial for Angular6. Please have a look to the Github repository NGNews6.
A tutorial for Angular6. Please have a look to the Github repository NGNews6.
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
é<br />
Angular<br />
© Gérald Abbadie 2018<br />
Dans cet exemple, nous trions une liste 'select' de pays en utilisant la valeur d'un champ input<br />
comme chaîne de tri.<br />
Pour cet exemple nous avons créé un Pipe personnalisé :<br />
ng generate pipe TriTableauPipe<br />
...qui nous donnera un fichier de ce type, à peine modifié depuis la base générée :<br />
import { Pipe, PipeTransform } from '@angular/core';<br />
@Pipe({<br />
name: 'triTableau'<br />
})<br />
export class TriTableauPipe implements PipeTransform {<br />
public transform(values: any[], filter: string): any[] {<br />
if (!values || !values.length) return [];<br />
if (!filter) return values;<br />
return values.filter(v => v.toLowerCase().indexOf(filter.toLowerCase()) >=<br />
0);<br />
}<br />
}<br />
Dans ce exemple, nous créons une classe avec un décorateur de Pipe. Ce décorateur reçoit une<br />
chaine 'name' qui permet d'identifier le Pipe dans le HTML. C'est le nom que nous utilisons<br />
dans la boucle HTML.<br />
La classe TriTableauPipe utilise la méthode Transforme de la classe PipeTransform pour renvoyer<br />
des valeurs :<br />
s'il n'y a pas de valeurs insérées, le filtre renvoie un tableau vide :<br />
if (!values || !values.length) return [];<br />
si le Pipe ne reçoit pas de filtre (une chaîne de caractère), il renvoie toutes les valeurs :<br />
if (!filter) return values;<br />
Enfin, dans tous les autres cas, il renvoie un tableau en appliquant un filtre, ici, un test de présence<br />
de chaîne (indexOf) dans une boucle sur le tableau des valeurs (values.filter).<br />
return values.filter(v => v.toLowerCase().indexOf(filter.toLowerCase()) >=<br />
0);<br />
Ainsi, dans cet exemple, le Pipe reçoit la tableau des pays du 'select' en argument 'values' et<br />
utilise la valeur du champ de l'input comme filtre (une chaîne de caractères). Nous verrons<br />
plus loin comment utiliser ngModel pour relier une valeur de composant à des champs de<br />
formulaire.<br />
37