EJS模板包括函数

时间:2018-06-16 17:26:33

标签: ejs

我使用EJS模板并尝试组织EJS中定义的一些函数。例如,假设我在模板中有一个简单的函数:

<%
  const getItems = () => {}
%>

当它被定义在同一页面上使用时,这非常好。但是,如果我想将其移至通用functions.ejs,则在其他网页<%- include(functions) %>getItems未定义。

有人知道如何在ejs中包含可重复使用的功能吗?

1 个答案:

答案 0 :(得分:0)

根据我的经验,这可能与您调用该functions.ejs文件的方式和位置有很大关系。您应该在其他模板的变量范围内呈现它,也许您希望在其他代码上方使用伪指令<% include('functions') %>,希望达到functions.ejs的范围。

例如,您可能有两个不同的EJS模板文件:functions.ejsother_functions.ejs,并想从第三个模板文件中调用它们。一个选择是:

    <!-- Bla bla bla -->
    <% include('functions') %>
    <!-- stuff using 'functions.ejs' code -->
    <% include('other_functions') %>
    <!-- stuff inside of 'other_functions.ejs' calling 'functions.ejs' code -->

最后,结果可能是:

    <!-- Bla bla bla -->
    const getItems = () => {}
    <!-- stuff using 'functions.ejs' code -->
    var items = getItems()
    <!-- stuff inside of 'other_functions.ejs' calling 'functions.ejs' code -->

请告诉我是否正在帮助您查看解决方案。