是否可以在帕格代码中使用三元运算符?
我尝试使其生效:
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,null表示false,让pug知道该怎么做。
这里它在codepen中工作。
div
- var disabled = true;
input(disabled = disabled ? '' : null)
使用true
,哈巴狗会生成<input disabled>
。
使用false
,哈巴狗会生成<input>
。
在这种情况下,如果您的变量是布尔值,则实际上不需要使用三元运算符。您可以将值分配给属性。 Pug具有用于处理boolean attributes的内置系统,如果doctype为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" />