express中使用ejs模板如何实现迭代?

发布于 2022-09-06 23:12:49 字数 2009 浏览 28 评论 0

使用nodeJS的express框架,应用了ejs模板,遇到一个问题:

数据为树结构,层数不定,1-5层左右,发现在ejs用include进来的模板内使用的变量名不可更改(或者更改方法我没有找到),导致无法把树结构数据使用迭代的方式来拼成html模板;

想法:想要实现写一个模板,然后遇到判断时调用自身实现迭代,模板中的遍历变量由include时传入,不知道这个想法能否实现;

目前解决方案:约定好树结构层数,在模板中写好遍历。

希望有熟悉EJS的同学帮忙看一看有没有更好的办法。

<ul>
    <% leftData.forEach(function(item){ %>
      <li>
        <% if(item.type == 'file'){ %>
            <%= item.name.split('.md')[0] %>
        <% }else{ %>
            <%= item.name.split('.md')[0] %>
            <% if(item.children.length > 0){ %>
                <ul>
                    <% item.children.forEach(function(value){ %>
                      <li>
                        <% if(value.type == 'file'){ %>
                            <%= value.name.split('.md')[0] %>
                        <% }else{ %>
                            <%= value.name.split('.md')[0] %>
                            <% if(value.children.length > 0){ %>
                                <ul>
                                    <% value.children.forEach(function(data){ %>
                                      <li>
                                        <% if(data.type == 'file'){ %>
                                            <%= data.name.split('.md')[0] %>
                                        <% }else{ %>
                                            <%= data.name.split('.md')[0] %>
                                        <% } %>
                                      </li>
                                    <% }) %>
                                </ul>
                            <% } %>
                        <% } %>
                      </li>
                    <% }) %>
                </ul>
            <% } %>
        <% } %>
      </li>
    <% }) %>
</ul>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文