EJS:将页面数组传递到include(页面)

时间:2017-06-15 13:32:39

标签: node.js ejs

我创建了一个仪表板页面,用户可以将该站点的不同组件保存到一个页面以便快速查看。我能够动态加载一个组件,如下所示:

index.js

res.render('dashboard',{comp: 'component1'});

dashboard.ejs

<%- include(comp) %>

但我想做这样的事情:

index.js

res.render('dashboard',{comp: ['component1', 'component3']});

让ejs页面循环遍历include(),这样我就可以在仪表板页面上显示0到n个组件。

我尝试将for包装在for循环中,如下所示:

<%- for(c in comp){include(c)} %>

但是ejs不喜欢这个。

我是以错误的方式解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

试试这个

 <% for(var i=0; i < comp.length; ++i) { %>
    <%- include(comp[i]) %>
    <% } %>

答案 1 :(得分:1)

  

在你的代码中,c是索引而不是值,comp [c]是你的组件。

<% for(c in comp){ %>
       <%- include(comp[c]) %>
<% } %>