[英]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 = ["a.jpg","b.jpg","c.jpg"];
我嘗試在路由代碼而不是模板中進行字符串化,但是結果相同。
查看文檔 ,您可以閱讀:
模板函數既可以使用<%=…%>插值,也可以使用<%…%>執行任意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.