我正試圖在EJS中實現一個遞歸包含。我正在使用ExpressJS 4.我需要能夠選擇性地將數據傳遞給包含。我的「sub」變量隨着循環迭代而改變,因此不能全局工作。 但是我得到「超出最大調用堆棧大小」,這意味着部分中的if語句總是評估爲true。將數據傳遞給EJS包括
這是我的主要HTML:
<ul id="drop1" data-dropdown-content class="f-dropdown">
<% agents.forEach (function(sub) { var subs = sub.agents; %>
<li>
<a href="#"><%= sub.fname +' ' +sub.lname %></a>
<% if (subs) { %>
<% include dropdown.html %>
<% } %>
</li>
<% }); %>
</ul>
這是我包括(dropdown.html):
<ul class="f-dropdown">
<% subs.forEach(function(sub) { %>
<li>
<a href="#"><%= sub.fname +' ' +sub.lname %></a>
<% if (sub.agents && sub.agents.length) {subs = sub.agents; %>
<% include dropdown.html %>
<% } %>
</li>
<% }); %>
</ul>
UPDATE: 即使這不起作用:
<ul class="f-dropdown">
<% if (sub.agents && sub.agents.length > 0) { %>
<% (function(subs) { %>
<% include dropdown.html %>
<% })(sub.agents); %>
<% } %>
</ul>
即將試用JUST
檢查了這個http://stackoverflow.com/questions/34622011/node-ejs-passing-data-to-an-include –