我可以在eco中使用Coffeescript“switch”块吗?

时间:2012-01-19 04:21:16

标签: coffeescript switch-statement eco

我可以在eco模板引擎中使用Coffeescript switch块吗?我尝试了几种变体,但我不断收到unexpected dedent错误。

更新:为了安抚下来的人,这是我期望的工作

<% switch x : %>
<% when 1 : %>
    one
<% end %>
<% when 2 : %>
    two
<% end %>
<% end %>

但是我得到了“第5行的解析错误:意外的dedent”

2 个答案:

答案 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 %>