【发布时间】:2021-07-06 11:46:25
【问题描述】:
我正在尝试制作一个网络应用程序,人们可以在其中将一周中某天的锻炼添加到例行程序中,并且它会在一个页面上显示他们的整个例程。我还希望练习的名称链接到相应的页面。例如,我的数据在 mongodb 中是这样的:
_id:60e2edf7014df85fd8b6e073
routineName:"test"
routineUsername: "tester"
monday:[{
_id: 60e430d45395d73bf41c7be8
exercise: "Bicep curls"
}{
_id: 60e4329592e3fa445836d983
exercise: "Overhead press"
}]
tuesday:[{
_id:60e2ee8962c0c15840ecc69b
exercise:"Hanging leg raise"
}]
..etc
我在 EJS 中有这个:
<% routine.monday.forEach(monday => { %>
<ul>
<% switch (monday.exercise) {
case 'Hanging leg raise' : %>
<a href="/muscles/abs/hanginglegraise"><li><%= monday.exercise %></li></a>
<% break;
case 'Bicep curls' : %>
<a href="/muscles/biceps/bicepcurls"><li><%= monday.exercise %></li></a>
<% break;
case 'Calf raises' : %>
<a href="/muscles/calves/calfraises"><li><%= monday.exercise %></li></a>
<% break;
case 'Barbell bench press' : %>
<a href="/muscles/chest/barbellbenchpress"><li><%= monday.exercise %></li></a>
<% break;
case 'Incline bench press' : %>
<a href="/muscles/chest/inclinebenchpress"><li><%= monday.exercise %></li></a>
<% break;
case 'Overhead press' : %>
<a href="/muscles/frontdeltoids/overheadpress"><li><%= monday.exercise %></li></a>
<% break;
case 'Barbell squat' : %>
<a href="/muscles/quadriceps/barbellsquat"><li><%= monday.exercise %></li></a>
<% break;
case 'Shrugs' : %>
<a href="/muscles/trapezius/shrugs"><li><%= monday.exercise %></li></a>
<% break;
} %>
</ul>
<% }) %>
..etc
但正如您所见,我必须在一周的每一天重复此代码 7 次,每次都使用 switch case,这样我才能将练习转到正确的链接。我觉得这是一种糟糕且低效的方法,但我不知道/想不出更好的方法,我们将不胜感激。
【问题讨论】:
-
旁注:
<li>是<a>的无效子代。<a>应该是<li>的孩子 -
啊,谢谢你的提示
-
制作函数?
-
我不知道如何在 ejs 中做到这一点,或者如果我把它放在外面我不知道如何让它包含链接
标签: javascript node.js mongodb ejs