【问题标题】:Can I use a Coffeescript `switch` block in eco?我可以在 eco 中使用 Coffeescript `switch` 块吗?
【发布时间】:2012-02-13 19:30:11
【问题描述】:
我可以在生态模板引擎中使用 Coffeescript switch 块吗?我尝试了几种变体,但我不断收到unexpected dedent 错误。
更新:为了安抚反对者,这是我期望的工作
<% switch x : %>
<% when 1 : %>
one
<% end %>
<% when 2 : %>
two
<% end %>
<% end %>
但我收到“第 5 行的解析错误:意外凹陷”
【问题讨论】:
标签:
coffeescript
switch-statement
eco
【解决方案1】:
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'
switch x 之后的两个 __out.push '\n' 行和第二个 when 语句的结尾似乎不允许此 CoffeeScript sn-p 编译成 JavaScript。
查看代码,我无法弄清楚如何防止打印这些行。向制作eco 的人报告这可能是一个很好的错误。
【解决方案2】:
我对 eco 只是有点熟悉,但似乎它不会从那个表达式中创建正确的 CS。考虑到 CS 使用 when x then y,我不确定你是否在编译时得到它。
你可以试试这个:
<% switch x : %>
<% when 1 then: %>
one
<% end %>
<% when 2 then: %>
two
<% end %>
<% end %>