gpt4 book ai didi

node.js - 如何在 EJS 中动态添加选项标签?

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:57 28 4
gpt4 key购买 nike

我觉得这很草率,而这正是 EJS 试图阻止的。有没有办法在不连接循环字符串的情况下添加值和选项?

    <!-- developer field option values -->
<% var optionstring = "";
for (var i = 0; i < developers.length; i++){
optionstring += '<option value="' + developers[i]._id + '">' + developers[i].firstname
}

%>



<% for (var i = 0; i < users.length; i++){ %>
<tr>
<td><%= users[i].firstname %></td>
<td><select class="assign_dev"><option value="unassigned">unassigned<%- optionstring %></select></td>
<td><select class="ticket_status"><option value="open">Open</option><option value="closed">Closed</option></select></td>
</tr>

最佳答案

如果您的目标是避免连接字符串,那么您可以关闭代码块,插入 html,然后重新打开代码块。

<% for (var i = 0; i < users.length; i++){ %>
<tr>
<td><%= users[i].firstname %></td>
<td>
<select class="assign_dev">
<option value="unassigned">unassigned</option>
<%
for (var j = 0; j < developers.length; j++){
%><option value="<%= developers[j]._id %>"><%= developers[j].firstname %><%
}
%>
</select>
</td>
<td>
<select class="ticket_status">
<option value="open">Open</option>
<option value="closed">Closed</option>
</select>
</td>
</tr>
%>

但是,我认为真正的目标不应该是避免串联。目标应该是使代码清晰且高效(只要效率不牺牲清晰度)。在我看来,你的原始代码更好。由于您需要一遍又一遍地列出相同的选项,因此在前面的循环中创建一次列表,然后在第二个循环中重用该缓存的字符串比嵌套循环更高效、更清晰。

关于node.js - 如何在 EJS 中动态添加选项标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477592/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com