嘿,有没有办法可以用haml做到这一点?
:javascript
var Tab = <%= @tab %>
我可以添加一个助手,我想:
<script>
var Tab = '<%= @tab %>'
</script>
但是使用HAML会很好!
答案 0 :(得分:87)
您可以使用字符串插值语法(#{...}
):
:javascript
var tab = #{@tab}
请注意正确逃避。
答案 1 :(得分:-20)
这是构建代码的一种可怕方式。
内联JavaScript已经足够糟糕了。内置ERb的内联JavaScript让你直截了当。
JavaScript应该在外部静态文件中。这样浏览器可以缓存它们,您可以使用JavaScript作为真正的编程语言。
在你的情况下,我建议像:
(Haml文件)
#tab= @tab
(CSS文件)
#tab { display: none }
(Javascript文件)
var Tab = $('#tab').innerHTML();
这样一切都保持静态和可维护,而你不是混合JS和HTML。