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

发布于 2024-12-27 21:44:24 字数 326 浏览 2 评论 0原文

我可以在 Eco 模板引擎中使用 Coffeescript switch 块吗?我尝试了几种变体,但不断收到意外的缩进错误。

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

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

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

Can I use a Coffeescript switch block in the eco templating engine? I tried a couple of variations, but I keep getting unexpected dedent errors.

Update: To appease the downvoters, here is what I expected to work

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

But I get "Parse error on line 5: unexpected dedent"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必了 2025-01-03 21:44:24

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 片段编译为 JavaScript。

查看代码,我不知道如何防止打印这些行。这可能是一个向制作 eco 的人报告的好错误。

ECO templates don't appear to support the switch statement.

The generated CoffeeScript code for your code is:

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'

The two __out.push '\n' lines after switch x and the end of the second when statement don't seem to allow this CoffeeScript snippet to compile into JavaScript.

Looking through the code, I couldn't figure out how to prevent those lines from being printed. This might be a good bug to report to the guys that make eco.

青衫儰鉨ミ守葔 2025-01-03 21:44:24

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

你可以试试这个:

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

I'm only somewhat familiar with eco, but it seems as though it would just not be creating the right CS from that expression. Considering CS uses when x then y, I'm not sure you're getting that on compile.

You could try this instead:

<% switch x : %>
    <% when 1 then: %>
        one
    <% end %>
    <% when 2 then: %>
        two
    <% end %>
<% end %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文