タグ関数を使用して値のないブール属性を設定する

Aug 20 2020

タグ関数を使用する場合、nullになる可能性のある値のない属性をどのように処理しますか?

たとえば、私たちにできることは素晴らしいことです…

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

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

…引き起こす:

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

しかし、required属性が変数でもある場合はどうでしょうか?できません:

{% set reqVar  = '' %}

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

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

reqVar空の場合、required属性をまったく書き込まないようにする必要があるためです。引き起こす:

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

ではなく

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

同じことが、のような他のブール属性にも当てはまりますhidden

この関数でこれを行う方法はありますか?何が足りない、または得られないのですか?

回答

4 BrandonKelly Aug 20 2020 at 00:59

属性がに設定されている場合、true値なしで追加されます。

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

また、nullまたはfalseに設定されている場合は、最初からリストされていないかのように省略されます。