Я хочу сохранить 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;
});