我可以在eco模板引擎中使用Coffeescript switch
块吗?我尝试了几种变体,但我不断收到unexpected dedent
错误。
更新:为了安抚下来的人,这是我期望的工作
<% switch x : %>
<% when 1 : %>
one
<% end %>
<% when 2 : %>
two
<% end %>
<% end %>
但是我得到了“第5行的解析错误:意外的dedent”
答案 0 :(得分:2)
ECO模板似乎不支持switch
声明。
为您的代码生成的CoffeeScript代码为:
switch x
__out.push '\n'
when 1
__out.push '\n one\n'
__out.push '\n'
when 2
__out.push '\n two\n'
__out.push '\n'
__out.push '\n'
之后的两个switch x
行和第二个when
语句的结尾似乎不允许将此CoffeeScript代码段编译为JavaScript。
查看代码,我无法弄清楚如何防止这些行被打印。对于制作eco的人来说,这可能是一个很好的错误。
答案 1 :(得分:0)
我对eco有点熟悉,但似乎不会从该表达式创建正确的CS。考虑到CS使用when x then y
,我不确定你是否会在编译时使用它。
您可以尝试这样做:
<% switch x : %>
<% when 1 then: %>
one
<% end %>
<% when 2 then: %>
two
<% end %>
<% end %>