2

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

更新:为了安抚反对者,这是我期望的工作

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

但我收到“第 5 行的解析错误:意外的凹痕”

4

2 回答 2

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的人报告这可能是一个很好的错误。

于 2012-01-26T23:46:44.290 回答
0

我对 eco 只是有点熟悉,但似乎它不会从那个表达式中创建正确的 CS。考虑到 CS uses when x then y,我不确定您是否在编译时得到了它。

你可以试试这个:

<% switch x : %>
    <% when 1 then: %>
        one
    <% end %>
    <% when 2 then: %>
        two
    <% end %>
<% end %>
于 2012-01-23T22:56:12.330 回答