การตั้งค่าแอตทริบิวต์บูลีนที่ไม่มีค่าด้วยฟังก์ชันแท็ก

Aug 20 2020

เมื่อใช้ฟังก์ชันแท็กหนึ่งจะจัดการกับแอตทริบิวต์ที่ไม่มีค่าซึ่งอาจเป็นโมฆะได้อย่างไร

ตัวอย่างเช่นมันยอดเยี่ยมมากที่เราทำได้ ...

{% 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จะถูกละไว้ราวกับว่าไม่เคยปรากฏมาตั้งแต่แรก