簡體   English   中英

如何將數組傳遞給下划線模板中的腳本?

[英]How to pass an array to a script in an underscore template?

我試圖將文件名數組傳遞到模板中,這樣var便可以訪問該數組。 這樣一來,我的頁面在頁面加載后不必執行AJAX請求。 通過我的快遞路線,我渲染了模板:

var a = ['a.jpg','b.jpg','c.jpg'];
res.render('clean', {images: a});

在我的模板中:

<script type="text/javascript">
    var images = <%- JSON.stringify(images) %>;
</script>

我期望的是:

var images = ["a.jpg", "b.jpg", "c.jpeg"];

我得到的是:

var images = [&quot;a.jpg&quot;,&quot;b.jpg&quot;,&quot;c.jpg&quot;];

我嘗試在路由代碼而不是模板中進行字符串化,但是結果相同。

查看文檔 ,您可以閱讀:

模板函數既可以使用<%=…%>插值,也可以使用<%…%>執行任意JavaScript代碼。 如果您想插入一個值,並使其轉義為HTML,請使用<%-…%>。

您正在使用<%-因此輸出是HTML轉義的。 我建議您使用<%=來避免此問題。

希望能幫助到你。

 // Your current code. var templFnc = _.template('var images = <%- JSON.stringify(images) %>'); console.log(templFnc({ images: ["a.jpg", "b.jpg", "c.jpeg"] })); // Code using <%= instead of <%- var templFnc = _.template('var images = <%= JSON.stringify(images) %>'); console.log(templFnc({ images: ["a.jpg", "b.jpg", "c.jpeg"] })); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM