2017-09-15 9 views
1

Est-il possible d'ajouter de façon conditionnelle un attribut à un élément à l'aide de la syntaxe de liaison? Je suis au courant de if.bind, mais cela cible les éléments. Je préfère plutôt cibler un attribut spécifique sur un élément.Attribut d'ajout conditionnel

Exemple:

<a href.bind="model.link">${model.text}</a> 

Si model.link est falsy, alors je ne veux pas le href du tout - il suffit de traiter le <a /> comme un élément conteneur.

Je me rends compte que je pourrais créer deux <a /> étiquettes - une avec l'attribut et un sans - et utiliser un if.bind sur les deux, mais qui semblent clunky et un-aurelia comme.

+0

Cela génère quand même le 'href' lui-même. L'URL correspondante est vide, mais elle est toujours traitée comme un lien hypertexte. Je ne veux pas utiliser le '' comme lien hypertexte s'il n'y a pas d'URL. –

Répondre

3

Je ne pense pas qu'il est pris en charge Aurelia actuellement (issue 1, issue 2)

Ce,

<a href.bind="addLink ? link : ''">Link</a>. 

va produire

<a href>Link</a> 

si addLink est false. Il ne supprimera pas complètement le attribute. Si vous utilisez une bibliothèque qui vérifiera l'existence d'un attribut pour manipuler l'élément, cela ne fonctionnera pas. Une autre option consiste à créer un attribut personnalisé like this. Mais cela semble être un frais généraux.