javascript - 动态 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 个名称生成?
解决方案
<% for(var i=1; i <= Object.keys(post).length ; i++) {%>
<%if(post['name' + i]){%>
<div class="name"><%- post['name' + i]%></div>
<% } %>
<% } %>
试试这个,但你绝对应该把你的帖子组织成一个对象数组,这样你就可以轻松地循环遍历它。
推荐阅读
- npm - 安装 NodeJS Fabric 客户端时出错
- django - 如何从我的 Django 视图中引用我的?
- python - 如何在要抓取的 url 列表中安全地进行多线程处理?
- stream - Dynamodb 流 lambda 和 Kinesis 适配器的使用
- python-3.x - Flask-RESTful API 不会以 json 格式返回字典
- c# - 如何修复 C# Win32 API 中的“SetupAPI 错误:InWow64”
- api - 是否可以登录我的网站并使用电子邮件和密码在 power bi 上进行身份验证?
- vim - 如何关闭名为 // 的 vim 高亮组
- python - 如何将项目从一个 QTreeWidget 移动到另一个 QTreeWidget 并跟踪信息?
- python - 从发行日期到电影数量到特定类型的排序