EJS掉毛错误-删除不必要的<%和%>

时间:2018-07-20 07:52:43

标签: node.js webpack ejs

在我们的webpack构建中,我们有一个带有ejs模板的文件:

 <% switch (type) {
    case 'homepage' : %>
            <%- include partials/top -%>
            <% break;
    case 'amsterdam' : %>
            <%- include partials/1 -%>
            <% break;
    case 'company' : %>
           <%- include partials/2 -%>
            <% break;
    case 'new york' : %>
            <%- include partials/3 -%>
            <% break;
    case 'paris' : %>
            <%- include partials/4 -%>
            <% break;
    } %>

这有效。但是可以删除所有的<%%>,因为整个块实际上是由<% %>解释的。

我尝试仅保留第一个<%和结尾的%>,如下所示,但构建失败,提示ejs掉毛错误。

<% switch (type) {
    case 'homepage' : 
            include partials/top
            break;
    case 'amsterdam' :
             include partials/1
             break;
    case 'company' : 
             include partials/2 
             break;
    case 'new york' : 
            include partials/3 
            break;
    case 'paris' : 
            include partials/4 
            break;
    } %>

是否可以完全删除所有<% %>

1 个答案:

答案 0 :(得分:1)

<%%>用于条件语句或变量评估,要显示,您必须使用<%=%>或<%-%>,但那些期望值而不是表达式

唯一的方法是将开关包含在函数中并返回结果:

<% var a  = 1; %>

<%- (function(){
        switch(a){
            case 1:
                return include("c.ejs");
                break;
            case 2:
                return include("d.ejs");
                break;
           default:
               break;
         }

     })()
 %>