Vues
Liaison de données
Pour afficher des propriétés provenent da la classe du composant dans sa vue, on utilise la doubel accolade
Pour lier une propriété d'un élément HTML à une propriété de la classe utiliser les crochets ou les doubles accolades
<img [src]='fruit.imgUrl' ... >
<input type='text' [disabled]='isDisabled'>
<img src={{fruit.imgUrl}} ... >
Pour lier des événements on utiliser les parenthèses
Directives de contrôle
@if(condition) { }, @else-if() {}, @else {}Le contenu des accolades est affiché si la condition est vraie@for( ) { }Permet de répéter un bloc HTML pour chaque élément d'une collection.
@if(fruits.length) {
<table>
...
@for(fruit of fruits; track fruit.id)
<tr>
...
<!-- Utilisation de pipe -->
<td>{{fruit.prix | currency:'CAD'}}</td>
...
</tr>
...
}
Utilisation de track
Notez bien que la directive @for() utilise track pour qu'Angular conserve une relation entre les données et les éléments du DOM sur la page. Ceci optimize la performence lorsqu'il y a un changement dans l'ensemble des données.
La porpriété suivie par track devrait toujours être une propriété unique. Dans un cas comme un tableau de chaînes de caractères, on pourra suive $index à la place.
Pipes
- Permettent de modifier l'affichage des données
- Ex. lowercase, uppercase, currency
-
Prise en charge des paramètres (séparés par :)
-
ex. avec currency :
{{fruit.prix | currency:'CAD':'symbol-narrow'}}où'CAD'est lecurrencyCodeet'symbal-narrow'est la valeur pour le paramètredisplay(affiche $) - On peut en créer des personnalisées
- On peut en utiliser plusieurs les unes après les autres
@Pipe({
name: 'retirerCaractere'
})
export class RetirerCaractere implements PipeTransform {
transform(valeur: string, caractere: string): string {
return valeur.replace(caractere, '');
}
}