Pug 中的属性值“只是普通的 JavaScript”,如 Pug 文档的属性页面所述。
如果属性的值为false
,则 Pug 根本不会打印该属性。这可以在同一页面的布尔属性部分中看到:
// Input (Pug):
input(type='checkbox' checked)
input(type='checkbox' checked=true)
input(type='checkbox' checked=false)
input(type='checkbox' checked="true")
// Output (HTML):
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="checked" />
<input type="checkbox" />
<input type="checkbox" checked="true" />
因此,您可以将i === 0 && "true"
其用作data-active
属性的值:
.my__element(data-month=months[month] data-active=(i === 0 && "true"))
属性值周围的括号是可选的,但它们提高了可读性。所以这没问题,但可读性较差:
.my__element(data-month=months[month] data-active=i === 0 && "true")
一个更详细的替代方案:
.my__element(data-month=months[month] data-active=(i === 0 ? "true" : false))
.my__element(data-month=months[month] data-active=i === 0 ? "true" : false)
(请注意,这"true"
是一个字符串并且false
是一个布尔值;这是故意的。您可以尝试切换它们的类型以查看原因。)