想知道是否有办法编写if语句的三元或更短形式,当满足if时,将'a'元素添加到表格单元格.
我试过这个,但它不起作用:
td= foo.x ? a(href="/#{foo.x}/foobar") View : '-'
Run Code Online (Sandbox Code Playgroud)
以下确实有效,但是很长很啰嗦和不整洁.
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 -
Run Code Online (Sandbox Code Playgroud)
谢谢
三元在玉中很好用.
我根据你的问题松散地做了一个快速工作的例子:
- var bar=[{name:'Joe',x:'something'},{name:'Mike'}]
each foo in bar
p=foo.x ? foo.name + ' hasX' : foo.name + ' noX'
Run Code Online (Sandbox Code Playgroud)
结果是
<p>Joe hasX</p>
<p>Mike noX</p>
Run Code Online (Sandbox Code Playgroud)
没有.在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
Run Code Online (Sandbox Code Playgroud)
您也可以使用#{}
:
h6 #{(employee.Sprite > 0) ? "SPRITE" : "NO SPRITE"}
Run Code Online (Sandbox Code Playgroud)
其中employee.Sprite是数据中的数字...
归档时间: |
|
查看次数: |
8914 次 |
最近记录: |