如何使用玉显示可点击的链接?

时间:2014-07-23 11:22:23

标签: node.js express pug

我有以下玉码: -

<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是否为可点击链接 但我怎么能这样做呢?

1 个答案:

答案 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中进行测试,但至少它不是一个可能不会成功的阴暗测试,具体取决于您想要显示的链接类型以及您想要的项目显示所有具有相同的结构。但同样,这并不完美。也许你可以找到更好的解决方案。