我正在使用ejs。无论我的陈述返回什么(无论currentGame
是什么),我的输出始终为12。我尝试实现break;
或return;
,并尝试使用诸如{{1} }或switch case
,但没有帮助。
如果在每个循环中输入while
,则输出{1、2、3 ... 12}。
console.log
我在浏览器中得到的代码是:
"<%var x%>"
"<%for(var i=1; i<=12; i++){%>"
if(currentGame === "<%=i%>"){
"<%x=i;%>"
}
"<%}%>"
console.log("<%=x%>")
答案 0 :(得分:0)
问题是您的代码正无条件地分配给服务器端x
变量,在此处:
"<%var x%>"
"<%for(var i=1; i<=12; i++){%>"
if(currentGame === "<%=i%>"){
"<%x=i;%>" // <===================================
}
"<%}%>"
console.log("<%=x%>")
if
是客户端代码,它对服务器端逻辑没有任何影响。该代码中的服务器端逻辑如下:
var x
for(var i=1; i<=12; i++){
x=i;
}
这是问题所在。 x
始终为12。
但是,从您已发布的特定代码中退后一步:使用服务器端代码生成客户端代码几乎绝不是一个好主意。相反,请分别编写客户端代码和服务器代码,这样就不会造成这种混乱。