Définition d'attributs booléens sans valeur avec la fonction de balise

Aug 20 2020

Lors de l'utilisation de la fonction de balise , comment gérer les attributs sans valeur qui pourraient également être nuls?

Par exemple, c'est génial que nous puissions faire…

{% set idVar   = 'idstring' %}
{% set nameVar = 'namestring' %}
{% set typeVar = 'typestring' %}

{{ tag('input', {
    id: idVar,
    name: nameVar,
    type: typeVar
}) }}

…générer:

<input id="idstring" name="namestring" type="typestring">

Mais qu'en est-il si l' requiredattribut est également une variable? On ne peut pas faire:

{% set reqVar  = '' %}

{% if field is required %}
    {% set reqVar = 'required' %}
{% endif %}

{{ tag('input', {
    id: idVar,
    name: nameVar,
    required: reqVar
}) }}

… Parce que si reqVarest vide, on voudrait que l' requiredattribut ne soit pas écrit du tout. Générer:

<input id="idstring" name="namestring" type="typestring">

… Et non :

<input id="idstring" name="namestring" type="typestring" required>

La même chose s'applique aux autres attributs booléens comme hidden.

Y a-t-il un moyen de faire cela avec cette fonction? Qu'est-ce que je manque ou que je ne reçois pas?

Réponses

4 BrandonKelly Aug 20 2020 at 00:59

Si un attribut est défini sur true, il sera ajouté sans valeur.

{{ tag('input', {
    id: idVar,
    name: nameVar,
    required: true
}) }}

De plus, s'il est défini sur nullou false, il sera omis, comme s'il n'avait jamais été répertorié en premier lieu.