rails js 响应中的 slim 模板
rails slim template in js response
我正在使用 slim 模板,需要编写一个 js 格式的响应,
当我尝试
javascript:
alert('x');
代码没有 运行,我猜是因为它被包裹在 <script>
标签中。
我发现自己在写这个
| alert('x');
它可以工作,但是,如果我需要添加另一个命令,我需要编写
| alert...
= "\n"
| anotherCommand
有没有更好的方法来用slim模板写这种东西?
我的实际代码看起来很糟糕(在这里)
| UIkit.notification("booked");
= "\n"
| $("#total").html("
= escape_javascript(render "total")
|");
= "\n"
| $("#total_#{@id}").html("
= escape_javascript(render "total", order:@order)
|");
只是3行jshtml替换
你可以像这样把所有的命令都写在一个 |
下:
|
UIkit.notification("booked");
$("#total").html("#{{escape_javascript(render 'total')}}");
$("#total_#{@id}").html("#{{escape_javascript(render 'total', order: @order)}}");
Interpolation也可以,不用显式加上\n
,因为|
下的文字是原样复制的,换行符也会复制.但是即使没有它们,您的 javascript 也是有效的,因为命令是用分号分隔的。
注意这里插值需要双括号,否则插值输出会被html转义。
我正在使用 slim 模板,需要编写一个 js 格式的响应, 当我尝试
javascript:
alert('x');
代码没有 运行,我猜是因为它被包裹在 <script>
标签中。
我发现自己在写这个
| alert('x');
它可以工作,但是,如果我需要添加另一个命令,我需要编写
| alert...
= "\n"
| anotherCommand
有没有更好的方法来用slim模板写这种东西? 我的实际代码看起来很糟糕(在这里)
| UIkit.notification("booked");
= "\n"
| $("#total").html("
= escape_javascript(render "total")
|");
= "\n"
| $("#total_#{@id}").html("
= escape_javascript(render "total", order:@order)
|");
只是3行jshtml替换
你可以像这样把所有的命令都写在一个 |
下:
|
UIkit.notification("booked");
$("#total").html("#{{escape_javascript(render 'total')}}");
$("#total_#{@id}").html("#{{escape_javascript(render 'total', order: @order)}}");
Interpolation也可以,不用显式加上\n
,因为|
下的文字是原样复制的,换行符也会复制.但是即使没有它们,您的 javascript 也是有效的,因为命令是用分号分隔的。
注意这里插值需要双括号,否则插值输出会被html转义。