Pug 语法中的三元运算符
Ternary operator in Pug syntax
是否可以在 Pug 代码中使用三元运算符?
我的尝试:
哈巴狗文件
- var disabled = true
input(type="checkbox" disabled ? disabled : null)
HTML 结果
<input disabled ? disabled : null></input>
HTML 想要的结果
<input disabled></input>
我知道描述 here 的标准条件 Pug 语法,但很难相信在现代 Pug 语法中没有机会使用三元运算符。
谢谢你的帮助!
您非常接近 - Pug 只需要一个属性即可开始处理。您的代码只是在进行评估,不属于任何属性。
因此,只需在前面添加您想要评估的属性,然后将三元运算符放在它之后。在这种情况下,您只希望 disabled
出现,仅此而已,所以让我们为 true 使用空字符串,为 false 使用空字符串,让哈巴狗知道该怎么做。
这里是 codepen。
div
- var disabled = true;
input(disabled = disabled ? '' : null)
使用 true
,哈巴狗生成 <input disabled>
。
使用 false
,pug 生成 <input>
。
在这种情况下,如果您的变量是布尔值,您实际上不需要使用三元运算符。您可以将值分配给属性。 Pug 有一个用于处理 boolean attributes 的内置系统,如果文档类型为 html
.
,它甚至可以呈现简洁(非镜像)属性
哈巴狗:
- var foo = true
input(type='checkbox', disabled= foo)
- var bar = false
input(type='checkbox', disabled= bar)
已呈现 HTML(如果文档类型为 html
)
<input type="checkbox" disabled />
<input type="checkbox" />
是否可以在 Pug 代码中使用三元运算符?
我的尝试:
哈巴狗文件
- var disabled = true
input(type="checkbox" disabled ? disabled : null)
HTML 结果
<input disabled ? disabled : null></input>
HTML 想要的结果
<input disabled></input>
我知道描述 here 的标准条件 Pug 语法,但很难相信在现代 Pug 语法中没有机会使用三元运算符。
谢谢你的帮助!
您非常接近 - Pug 只需要一个属性即可开始处理。您的代码只是在进行评估,不属于任何属性。
因此,只需在前面添加您想要评估的属性,然后将三元运算符放在它之后。在这种情况下,您只希望 disabled
出现,仅此而已,所以让我们为 true 使用空字符串,为 false 使用空字符串,让哈巴狗知道该怎么做。
这里是 codepen。
div
- var disabled = true;
input(disabled = disabled ? '' : null)
使用 true
,哈巴狗生成 <input disabled>
。
使用 false
,pug 生成 <input>
。
在这种情况下,如果您的变量是布尔值,您实际上不需要使用三元运算符。您可以将值分配给属性。 Pug 有一个用于处理 boolean attributes 的内置系统,如果文档类型为 html
.
哈巴狗:
- var foo = true
input(type='checkbox', disabled= foo)
- var bar = false
input(type='checkbox', disabled= bar)
已呈现 HTML(如果文档类型为 html
)
<input type="checkbox" disabled />
<input type="checkbox" />