[英]Console.log is printing while <%= is not
我有此代碼,問題是具有<%= propOfProp%>
不打印任何內容,而如果我將其替換為console.log(propOfProp)
,它將正常工作
<% for (var x in data){ %>
<% if(data.hasOwnProperty(x)){ %>
<% var obj = data[x]; %>
<% for( var prop in obj){ %>
<% if(obj.hasOwnProperty(prop)){ %>
<% if(isNaN(prop)){ %>
<% findName([prop],function(err,data){ %>
<% for(var h in data[0]) {%>
<% var obj2 = data[0][h]; %>
<% for (propOfProp in obj2) { %>
<% if(isNaN(propOfProp)){ %>
<%= propOfProp%>
<% } }%>
<% } %>
<% }); %>
<% } %>
<% } %>
<% } %>
<% } } %>
ejs中<%=%>的意思是內插和轉義(請參見https://github.com/tj/ejs ),而不僅僅是打印js var,您可能想做<%-%>(請參見在EJS中將變量呈現為HTML )...
所以解決辦法是
<% for (var x in data){ %>
<% if(data.hasOwnProperty(x)){ %>
<% var obj = data[x]; %>
<% for( var prop in obj){ %>
<% if(obj.hasOwnProperty(prop)){ %>
<% if(isNaN(prop)){ %>
<% findName([prop],function(err,data){ %>
<% for(var h in data[0]) {%>
<% var obj2 = data[0][h]; %>
<% for (propOfProp in obj2) { %>
<% if(isNaN(propOfProp)){ %>
<%- propOfProp%>
<% } }%>
<% } %>
<% }); %>
<% } %>
<% } %>
<% } %>
<% } } %>
但是,在不久的將來,您可能要重新考慮在前端執行所有這些代碼,因為您最終會以任何一種方式調用服務器。 EJS的想法是將代碼呈現在服務器上,並已在其中存儲所有數據,然后可以遍歷它。 如果可能,將其放在底部的標簽中,或在控制器上進行操作(如果是MVC)。 另外,您不需要循環遍歷屬性,然后再遍歷hasOwnProperties,只需循環遍歷已經存在的屬性即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.