如何将ejs变量传递给javascript?

时间:2019-02-02 19:16:25

标签: javascript node.js ejs

我无法将ejs变量传输到javascript。 我在ejs中有一个for

<% for(var i=0; i < lyrics.length; i++) {%>
            <!--MELODIE-->

            <br>

            <%= lyrics[i].texte %> 

,我想登录浏览器歌词[i] .texte变量。 我尝试了var a = <%= lyrics[i].texte %>;,但没有成功。 我还尝试在ejs <% v1= lyrics[i].texte ; %>中进行设置,并将js var设置为等于v1,但此操作再次失败。 我必须将lyrics [i] .texte转换为js变量。

我认为问题源于.texte来到变种的名称后(texte是数据库列的名称,这是一个字符串)。我在其中储存一首诗。当我使用标准var(如<%var = 30%>)时,它在js传输中运行正常。 感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

首先,您必须对var进行字符串化,因为它是一个数组。采用 var myVar = <%-JSON.stringify(ejsVar)%>;,以解决问题。

现在您可以在javascript中使用myVar。

答案 1 :(得分:0)

<% lyrics.forEach(lyric=> { %>
<li class="<%=lyric.texte %>"><%=lyric.texte %></li>
<% }); %>

这是循环lyrics的代码,如果要访问特定的lyric.texte,则必须在JavaScript文件中添加document.querySelector(".className");