我只想将EJS对象发送到javascript函数。我试过下面的代码,但它没有用。
<% books.forEach(function(book){ %>
<button onclick="getBookDetails(<%=book %>);" > <%=book.name %></button>
<% }); %>
我的JavaScript代码是
function getBookDetails(book){
//using book object
}
我也尝试了以下内容。但它没有帮助。getBookDetails(<%=JSON.stringify(book) %>);
请帮我找错。
答案 0 :(得分:0)
您应使用单引号将ejs的“字符串化”值包装起来,例如' <%= JSON.stringify(book)%> ':
<% books.forEach(function(book){ %>
<button onclick="getBookDetails('<%= JSON.stringify(book) %>')"><%= book.name %></button>
<% }) %>
首先在JS函数内部进行解析:
function getBookDetails(bookString){
let book = JSON.parse(bookString)
// now you can use the book object
}
答案 1 :(得分:0)
您应该删除JSON.parse().console.log(bookString)
。
对我有用。