【问题标题】:Convert Jade to EJS将 Jade 转换为 EJS
【发布时间】:2014-05-29 00:49:16
【问题描述】:

谁能帮忙把这个 Jade 转换成 EJS?

extends layout

block content
    h1.
        User List
    ul
        each user, i in userlist
            li
                a(href="mailto:#{user.email}")= user.username

【问题讨论】:

    标签: pug templating ejs


    【解决方案1】:

    EJS 中没有可用的块,但有一个包含逻辑。以您可以包含页眉和页脚(或任何适合您需要的内容)的方式拆分“主布局”。迭代以<% ... %> 序列转义的纯 JavaScript 表示。使用<%= ... %> 直接输出引用的var。您生成的 EJS 代码可能如下所示:

    <h1>User List</h1>
    <ul>
        <% for (var i = 0; i < user.length; i++) { %>
            <li><a href="mailto:<%= user[i].email %>"><%= user[i].username %></a></li>
        <% } %>
    </ul>
    

    或者,或者

    <h1>User List</h1>
    <ul>
        <% user.forEach(function(user) { %>
            <li><a href="mailto:<%= user.email %>"><%= user.username %></a></li>
        <% )} %>
    </ul>
    

    包含语法很简单:

    <% include partials/header %>
    ...
    <% include partials/footer %>
    

    注意:包含文件的位置与包含语句的模板相关。扩展是自动添加的。因此,如果您的模板存储在假设/views 中,则标头包含的完整路径将为/views/partials/header.ejs

    【讨论】:

      【解决方案2】:

      原来我需要一个“For In”循环。以下是调整后对我有用的方法:

      <h1>User List</h1>
        <ul>
          <% for (var i in userlist){%>
            <li><a href="mailto:<%= userlist[i].email %>"><%= userlist[i].username %></a></li>
          <%} %>
      
        </ul>
      

      【讨论】:

      • 所以,这可能意味着 userlist 在您的情况下属于 object 类型 - 而不是 array (故意?)。这对于处理 用户列表 并不明显,并且在您的原始问题中不清楚。也许最好用您的代码作为这种情况下的第三个选项来改进我的答案(另外,我们应该考虑参考.hasOwnProperty() 上的检查)?
      【解决方案3】:

      或者,您可以尝试从玉到 html 的在线转换器

      【讨论】:

        猜你喜欢
        • 2016-04-05
        • 1970-01-01
        • 2012-11-24
        • 2012-04-13
        • 2015-07-26
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多