Pug语法中的三元运算符

问题描述 投票:0回答:2

是否可以在帕格代码中使用三元运算符?

我尝试使其生效:

Pug文件

- var disabled = true
input(type="checkbox" disabled ? disabled : null)

HTML结果

<input disabled ? disabled : null></input>

HTML期望的结果

<input disabled></input>

我知道描述here的标准条件Pug语法,但是很难相信在现代Pug语法中没有使用三元运算符的机会。

感谢您的帮助!

frontend pug conditional-operator
2个回答
0
投票

您非常接近-Pug只需要一个标签即可开始处理。您的代码只是在进行评估,不属于任何标签。

因此,只需添加要评估的标记,然后在其后面放置三元运算符即可。在这种情况下,您只希望显示disabled,仅此而已,所以让我们使用空字符串表示true,null表示false,让pug知道该怎么做。

这里它在codepen中工作。

div
  - var disabled = true;
  input(disabled = disabled ? '' : null)

使用true,哈巴狗会生成<input disabled>

使用false,哈巴狗会生成<input>


0
投票

在这种情况下,如果您的变量是布尔值,则实际上不需要使用三元运算符。您可以将值分配给属性。 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" />
© www.soinside.com 2019 - 2024. All rights reserved.