Angular - 5.5-Attribution d'un alias aux propriétés personnalisées
Dans la leçon précédente, nous avons vu comment exposer une propriété d'un composant
enfant à son parent grâce au décorateur @Input(). Angular permet
d'aller un cran plus loin : donner un alias à cette propriété, pour
que le nom utilisé à l'intérieur du composant soit différent de celui exposé à
l'extérieur.
Pourquoi utiliser un alias
Imaginons un ServerElementComponent dont on veut une propriété interne
nommée element — un nom court et logique dans le contexte du composant.
Mais côté parent, ce nom serait ambigu : on préférerait écrire
[srvElement]="..." pour préciser qu'il s'agit du server element. Sans
alias, ce binding échoue : Angular cherche une propriété srvElement
décorée @Input qui n'existe pas. La solution est de passer le nom externe
en argument du décorateur :
@Input('srvElement') element: { type: string; name: string; content: string };
- à l'intérieur du composant, on continue d'utiliser
this.elementdans le code et le template ; - à l'extérieur, le parent doit désormais binder via l'alias :
[srvElement]="..."; - l'ancien nom
[element]ne fonctionne plus une fois l'alias en place.
C'est un petit bonus pratique : il permet d'avoir un nom interne propre tout en exposant un nom plus explicite ou plus stable dans l'API publique du composant — utile pour publier des composants réutilisables sans casser leur usage en cas de renommage interne.