2016-07-06 33 views
1

我只想將EJS對象發送給javascript函數。我已經嘗試了下面的代碼,但它沒有奏效。如何將JSON對象傳遞給內嵌javascript在EJS

<% books.forEach(function(book){ %> 
    <button onclick="getBookDetails(<%=book %>);" > <%=book.name %></button> 
    <% }); %> 

我的JavaScript代碼是

function getBookDetails(book){ 
    //using book object 
} 

我已經嘗試了以下的東西also.But它並沒有幫助。 getBookDetails(<%=JSON.stringify(book) %>);

請幫我找到這個錯誤。

回答

0

你不能叫getBookDetails(<%=book%>)因爲<%=book%>根據您的需要會得到評爲[object Object]而不是{ name: "Wind in the willows, author: "Kenneth Grahame" }

你在使用JSON.stringify的右邊線,但錯過了一個關鍵點:使用<%=將轉義html實體。相反 - 用​​3210像這樣:

<% books.forEach(function(book){ %> 
    <button onclick="getBookDetails(<%-JSON.stringify(book)%>);"><%=book.name %></button> 
<% }); %> 

你沒事使用<%=book.name%>,因爲這應輸出字符串。

相關問題