首页 > 解决方案 > 动态 ejs 布局

问题描述

我使用带有 markdown 和 ejs 的静态站点生成器(在某些地方我也有一些 vue)。

我有这些变量: - post.name1 - post.name2 - post.name3 等。

我的 ejs 布局如下:

<%if(post.name1){%>
<div class="name"><%- post.name1 %>
</div>
<% } %>
<%if(post.name2){%>
<div class="name"><%- post.name2 %>
</div>
<% } %>
<%if(post.name3){%>
<div class="name"><%- post.name3 %>
</div>
<% } %>

我不想写我的代码块三次(实际上是我有 59 个名字的 59 次),我想只写一 (1) 次,例如如下所示,然后它使我的布局如上所示:

<%if( name ){%>
<div class="name"><%- name %>
</div>
<% } %>

因此是否有可能使这成为可能,以便我的布局仅通过这一个代码块(和一些函数)为我的所有 59 个名称生成?

标签: javascriptvue.jsejs

解决方案


<% for(var i=1; i <= Object.keys(post).length ; i++) {%>
    <%if(post['name' + i]){%>
       <div class="name"><%- post['name' + i]%></div>
    <% } %>
<% } %>

试试这个,但你绝对应该把你的帖子组织成一个对象数组,这样你就可以轻松地循环遍历它。


推荐阅读