内联红宝石:javascript haml标签?

时间:2011-08-19 10:29:38

标签: javascript ruby-on-rails ruby haml

嘿,有没有办法可以用haml做到这一点?

:javascript
   var Tab = <%= @tab %>

我可以添加一个助手,我想:

<script>
  var Tab = '<%= @tab %>'
</script>

但是使用HAML会很好!

2 个答案:

答案 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。