3

在 Rails 中,我的视图中有一个 Coffeescript 文件,它被呈现为对 AJAX 请求的响应。

如果我有一些使用 ERB 控制逻辑<% %>,我希望能够像在 HTML 视图中那样在逻辑上缩进所有内容:

exampleFunction = ->
  <% if condition %>
    alert("condition met!")
  <% else %>
    alert("condition not met!")
  <% end %>

但这通常意味着 Coffeescript 会抛出缩进错误并且不会编译。(我刚刚给出的例子可能不会失败,我没有费心去检查,但它总是在不那么做作的情况下发生。)

所以我必须以这种相当笨拙的方式缩进:

exampleFunction = ->
  <% if condition %>
  alert("condition met!")
  <% else %>
  alert("condition not met!")
  <% end %>

有没有其他方法可以解决这个问题?我可以让 Coffeescript 和 ERB 相互配合,并允许更易读的缩进吗?

4

1 回答 1

1

这并不能完全回答问题,但我建议使用 ERB 设置变量,然后在逻辑中检查这些变量 - 例如:

condition = <%= condition.to_s %>

exampleFunction = ->
    if condition
        alert("condition met!")
    else
        alert("condition not met!")

这意味着所有代码在调试/运行时都可用,并使 ERB 模板在缩进方面更易于管理。

于 2013-10-16T08:17:21.363 回答