我想知道如何在javascript函数中传递ejs var
index.ejs
<%- include('header', {trans: text}) %>
//header.ejs
<% var lang=<%=lang%> %>
<li class="nav-item">
<a class="nav-link" href="javascript:" onclick="redirection(lang)">contact</a> // pass the var in function
</li>
//help.js
function redirection(val){
console.log(val);
}
答案 0 :(得分:1)
请记住,您的EJS程序和客户端JS程序是两个不同的程序(通常在两台不同的计算机上运行)。
您需要将数据放在客户端JS程序可以读取的位置。例如,data attribute。
然后客户端JS程序需要读取它。
在旁边:href="javascript:"
不是有用的URL。这是一个强烈的线索,您不应该使用链接。在本示例的其余部分,我将使用按钮。
旁:事件处理程序最好与JavaScript绑定,而不是与HTML绑定。
function redirection(event) {
const button = event.currentTarget;
const lang = button.dataset.lang;
console.log(lang);
}
document.querySelector("button").addEventListener("click", redirection);
<button data-lang="<%= lang %>" type="button" class="nav-link">
contact
</button>
请注意,在此示例中,EJS无法运行,因为我没有服务器可以运行它。您可以改为在演示中看到EJS源代码。