Search code examples
yeomanejsyeoman-generator

EJS template expansion when a string variable getting expanded has <%= %>


Below is EJS code where I have problem expanding 'myTemplate' variable:

<% for(var i = 0 ; i < largeObject.elementArray.length; ++i) {%>
    <%-largeObject.elementArray[i].myTemplate%>
<%}%>

'myTemplate' string examples below:

largeObject.elementArray[i].myTemplate = '<%=largeObject.elementArray[i].variable_1 + largeObject.elementArray[i].variable_7 + largeObject.elementArray[i].variable_12%>'

or

largeObject.elementArray[i].myTemplate = '<%=largeObject.elementArray[i].variable_1 + largeObject.elementArray[i].variable_5 + largeObject.elementArray[i].variable_14%>'

This is since 'myTemplate' variable derivation is fairly complex and hence is a pre-calculated string - but then how do I expand 'myTemplate' string now.

My EJS knowledge is basic - I might be missing some technical correct terms explaining this problem.


Solution

  • whilst calculating 'myTemplate' variable - I had to do ejs.render(template,data).

    largeObject.elementArray[i].myTemplate = ejs.render(complex_template,dataObject)
    

    Then assign the 'myTemplate' in the for loop as is.

    Below is EJS code where I have problem expanding 'myTemplate' variable:

    <% for(var i = 0 ; i < largeObject.elementArray.length; ++i) {%>
        <%-largeObject.elementArray[i].myTemplate%>
    <%}%>