EJS:将变量传递给包含的文件

时间:2015-02-10 11:01:34

标签: ejs

我正在使用EJS作为我的前端开发堆栈的一部分。 例如,我的普通index.ejs看起来像这样:

<%- include parts/header.ejs %>

  <%- include parts/navigation.ejs %>
    
    <!-- HTML content: divs, spans, etc. -->
  
<%- include parts/footer.ejs %>

我想要的是以某种方式传递包含&lt;% - include parts / footer.ejs? variable = value %&gt;的变量?并希望在包含的文件中读取它,以有条件地显示/隐藏内容的某些部分。

我找不到办法。是否可以使用EJS?

1 个答案:

答案 0 :(得分:5)

两种方法:

愚蠢的方式

这种方式与EJS 1.0兼容,并且具有编译时的优势。

只需在include之前声明变量。

示例:

included.ejs:

<p><%= variable %></p>

main.ejs:

<% var variable = 'hola' %>
<% include included %>

智能方式

此方法仅适用于EJS 2.0或更高版本,但可能比上一个方法稍慢(或者如果未启用缓存,则速度要慢很多):

included.ejs:

<p><%= variable %></p>

main.ejs:

<%- include('included', {variable: 'hola'}) %>