如何在Haml中包含内联JavaScript?

Fue*_*ssi 118 javascript jquery haml

我怎么能写这样的东西包含在模板中,但是在Haml中呢?

<script>
$(document).ready( function() {
  $('body').addClass( 'test' );
} );
</script>
Run Code Online (Sandbox Code Playgroud)

bco*_*lan 232

:javascript
    $(document).ready( function() {
      $('body').addClass( 'test' );
    } );
Run Code Online (Sandbox Code Playgroud)

文档:http://haml.info/docs/yardoc/file.REFERENCE.html#javascript-filter


Ale*_*ijk 24

你实际上可以做Chris Chalmers在他的回答中所做的事情,但是你必须确保HAML不会解析JavaScript.当你需要使用不同的类型时,这种方法实际上很有用text/javascript,这是我需要做的MathJax.

您可以使用plain过滤器来防止HAML解析脚本并抛出非法嵌套错误:

%script{type: "text/x-mathjax-config"}
  :plain
    MathJax.Hub.Config({
      tex2jax: {
        inlineMath: [["$","$"],["\\(","\\)"]]
      }
    });
Run Code Online (Sandbox Code Playgroud)


小智 18

所以我尝试了上述:javascript工作:)但是HAML将生成的代码包装在CDATA中,如下所示:

<script type="text/javascript">
  //<![CDATA[
    $(document).ready( function() {
       $('body').addClass( 'test' );
    } );
  //]]>
</script>
Run Code Online (Sandbox Code Playgroud)

以下HAML将生成包含(例如)typekit或google分析代码的典型标记.

 %script{:type=>"text/javascript"}
  //your code goes here - dont forget the indent!
Run Code Online (Sandbox Code Playgroud)