js响应中的rails slim模板

时间:2018-02-21 21:09:17

标签: ruby-on-rails slim-lang

我使用slim模板并需要编写js格式的响应, 我试过的时候

Regular expressions

代码没有运行,我猜是因为它包含在javascript: alert('x'); 代码中。

我发现自己在写这个

<script>

它有效,但是,如果我需要添加另一个命令,我需要编写

| alert('x');

使用超薄模板编写此类内容有更好的方法吗? 我的实际代码看起来很糟糕(这里是)

| alert...
= "\n"
| anotherCommand

只有3行js替换html。

1 个答案:

答案 0 :(得分:2)

您可以在|下编写所有命令,如下所示:

|
  UIkit.notification("booked");
  $("#total").html("#{{escape_javascript(render 'total')}}");
  $("#total_#{@id}").html("#{{escape_javascript(render 'total', order: @order)}}");

Reference for |

Interpolation也可以使用,您无需明确添加\n,因为|下的文字会按原样复制,并且也会复制换行符。但即使没有它们,你的javascript也会有效,因为命令是用分号分隔的。

请注意,这里需要双括号进行插值,否则插值输出将被html转义。