Attribute binding (Liaison d'attribut)
Vous pouvez définir la valeur d'un attribut directement avec une liaison d'attribut.
Il s'agit de la seule exception à la règle selon laquelle une liaison définit une propriété cible.
C'est la seule liaison qui crée et définit un attribut.
Ce guide souligne à plusieurs reprises que la définition d'une propriété d'élément avec une liaison
de propriété est toujours préférable à la définition de l'attribut avec une chaîne.
Pourquoi Angular propose-t-il une liaison d'attribut ?
Vous devez utiliser la liaison d'attribut lorsqu'il n'y a pas de propriété d'élément à lier.
Considérez les attributs
ARIA (Accessible Rich Internet Applications),
SVG (Scalable Vector Graphics) et de table.
Ce sont des attributs purs. Ils ne correspondent pas aux propriétés des éléments
et ne définissent pas les propriétés des éléments.
Il n'y a pas de cibles de propriété à associer.
Ce fait devient douloureusement évident lorsque vous écrivez quelque chose comme ça.
Et vous obtenez cette erreur:
Comme le message l'indique, l'élément
‹td›
n'a pas de propriété
colspan
.
Il possède l'attribut
colspan
, mais l'interpolation et la liaison de propriétés ne peuvent définir que des propriétés, pas des attributs.
Vous avez besoin de liaisons d'attributs pour créer et vous lier à de tels attributs.
La syntaxe de liaison d'attribut ressemble à la liaison de propriété. Au lieu d'une propriété d'élément entre crochets,
commencez par le préfixe
attr
, suivi d'un point (
.
) et du nom de l'attribut. Vous définissez ensuite la valeur de l'attribut
à l'aide d'une expression qui se résout en une chaîne. Lier
[attr.colspan]
à une valeur calculée:
Voici comment la table est rendue :
L'un des principaux cas d'utilisation de la liaison d'attributs consiste à définir les attributs ARIA, comme dans cet exemple: