【问题标题】: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 %>

【讨论】:

    猜你喜欢
    • 2013-03-10
    • 2011-10-11
    • 2011-06-08
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2014-03-31
    • 2012-11-18
    相关资源
    最近更新 更多