如何在EJS中将JSON对象传递给内联javascript
我只想将EJS对象发送到javascript函数。我尝试了下面的代码,但没有成功如何在EJS中将JSON对象传递给内联javascript,javascript,json,ejs,Javascript,Json,Ejs,我只想将EJS对象发送到javascript函数。我尝试了下面的代码,但没有成功 <% books.forEach(function(book){ %> <button onclick="getBookDetails(<%=book %>);" > <%=book.name %></button> <% }); %> 我也尝试过以下内容,但没有效果。getBookDetails() 请帮我找出错误。您不能调用g
<% books.forEach(function(book){ %>
<button onclick="getBookDetails(<%=book %>);" > <%=book.name %></button>
<% }); %>
我也尝试过以下内容,但没有效果。getBookDetails()代码>
请帮我找出错误。您不能调用getBookDetails()
,因为
将被评估为[对象对象]
,而不是{name:“柳树中的风,作者:”Kenneth Grahame“}
使用JSON是正确的。stringify
但是忽略了一个关键点:使用您应该用单引号将您的ejs“stringized”值括起来,如下所示
<% books.forEach(function(book){ %>
<button onclick="getBookDetails('<%= JSON.stringify(book) %>')"><%= book.name %></button>
<% }) %>
您应该删除JSON.parse().console.log(bookString)
它对我有用。您应该用引号括起来:onclick=“getBookDetails('
<% books.forEach(function(book){ %>
<button onclick="getBookDetails(<%-JSON.stringify(book)%>);"><%=book.name %></button>
<% }); %>
<% books.forEach(function(book){ %>
<button onclick="getBookDetails('<%= JSON.stringify(book) %>')"><%= book.name %></button>
<% }) %>
function getBookDetails(bookString){
let book = JSON.parse(bookString)
// now you can use the book object
}