想知道是否有办法编写if语句的三元或更短形式,当满足if时,它会将'a'元素添加到表格单元格。
我试过这个,但它不起作用:
td= foo.x ? a(href="/#{foo.x}/foobar") View : '-'
以下情况确实有效,但是很长时间啰嗦......
tbody
each foo in bar
tr
td= foo.name
if foo.x
td
a(href="/#{foo.x}/foobar") View
else
td -
if foo.y
td
a(href="/#{foo.y}/hello") Hello
else
td -
由于
答案 0 :(得分:9)
三元在玉器上工作正常。
我根据你的问题松散地做了一个快速工作的例子:
- var bar=[{name:'Joe',x:'something'},{name:'Mike'}]
each foo in bar
p=foo.x ? foo.name + ' hasX' : foo.name + ' noX'
结果
<p>Joe hasX</p>
<p>Mike noX</p>
答案 1 :(得分:5)
<击>否。在Jade中没有三元运算符(我知道!)。事实证明,有一个三元运算符。但是,为了缩短代码,您可以做的是声明块并在if / else部分中使用它们。虽然这在技术上为您的代码添加了行,但我认为这可以帮助您解决长if / else语句的问题。
使用您的示例:
block x_view
td
a(href="/#{foo.x}/foobar") View
block dash
td -
block y_hello
td
a(href="/#{foo.y}/hello") Hello
tbody
each foo in bar
tr
td= foo.name
if foo.x
block x_view
else
block dash
if foo.y
block y_hello
else
block dash
答案 2 :(得分:4)
您还可以使用#{}
:
h6 #{(employee.Sprite > 0) ? "SPRITE" : "NO SPRITE"}
其中employee.Sprite是数据中的数字......