我有以下玉码: -
<jade>
each item in reports
ul
div.lstheader #{item.user}
each val in item.status
li #{val}
<jade>
报告只不过是Json对象,如下所示
status: [ 'test', 'test message','http://stackoverflow.com/questions/ask' ] }
如果item.status是链接,我想显示item.status是否为可点击链接 但我怎么能这样做呢?
答案 0 :(得分:1)
嗯,你可以在Jade中使用vanilla JS,只需在代码前添加-
前缀。
所以你可以这样做:
- if (val.hasIndexOf("http")) // This is NOT a very robust test, maybe try with RegExp
li: a(href=val)= val
- else
li= val
但在我看来,你应该放弃任何来自Jade的逻辑。 在一个完美的世界里,我认为Jade应该仅限于显示目的。
您可以执行以下操作:
// In Node.js
var elements = [
{
"label" : "test"
},
{
"label" : "test message"
},
{
"label" : "Go To SO",
"href" : "http://stackoverflow.com/questions/ask"
}
];
// In Jade
each val in item.status
if (val.href)
li: a(href=val.href)= val.label
else
li= val.label
现在,这显然并不完美,因为您仍在Jade中进行测试,但至少它不是一个可能不会成功的阴暗测试,具体取决于您想要显示的链接类型以及您想要的项目显示所有具有相同的结构。但同样,这并不完美。也许你可以找到更好的解决方案。