【问题标题】:How to display clickable links using jade?如何使用玉显示可点击的链接?
【发布时间】:2014-09-14 13:24:02
【问题描述】:

我有以下玉码:-

<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 是链接,我想将其显示为可点击链接 但是我怎样才能让它运行时呢?

【问题讨论】:

    标签: node.js express pug


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

    【讨论】:

    • 谢谢,我面临的真正问题是有时我有字符串,例如“链接是stackoverflow.com/questions/ask”或“一些文本stackoverflow.com/questions/ask 然后stackoverflow.com/questions/ask”在这种情况下如何显示链接用玉
    • 嗯,基本上是一样的...我真的不明白是什么阻碍了你。您需要在 Jade 或 Node/Express 中使用字符串匹配函数(RegExpString.prototype.indexOf())提取 URL 部分,并使用上面建议的两种方法
    猜你喜欢
    • 2023-01-24
    • 2016-03-29
    • 1970-01-01
    • 2020-06-08
    • 2021-06-15
    • 2013-05-21
    • 2012-11-26
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多