Многострочная строка в EJS - PullRequest
       3

Многострочная строка в EJS

0 голосов
/ 09 февраля 2020

Я хочу сохранить javascript в переменную и поместить все это в один тег скрипта

Упрощенная форма:

<% let code=``; -%>
<% for (let i=0;i<2;i++){ -%>
    <% code+=` -%>
        <% alert(${i}); -%>
    <% `; -%>
<% } -%

...

<script>
    <%- code %>
</script>

Но я получаю странный вывод:

; __line = 14
;  alert(0); 
; __line = 15
...

Мое фактическое использование без многострочных строк; (:

<% code+=`document.getElementById("${i}c").addEventListener("click",()=>{\n` -%>
    <% code+=`let el=document.getElementById("${i}");\n` -%>
    <% code+=`let done=Number(el.innerHTML)^1;\n` -%>
    <% code+=`req({data:'completed='+done+'&id_p=${rows[i].id_p}'});\n` -%>
    <% code+=`el.innerHTML=done;\n` -%>
<% code+=`});\n` -%>

вывод:

document.getElementById("0c").addEventListener("click",()=>{
    let el=document.getElementById("0");
    let done=Number(el.innerHTML)^1;
    req({data:'completed='+done+'&id_p=57'});
    el.innerHTML=done;
});
...