HAML在使用content_for、for JavaScript时有多行
我试图在页面上输出一些内联js。我真的不想把它添加到任何JS文件中,因为它是如此的简单和一次性使用。也就是说,我正在使用haml,并尝试使用content_for,以便在从布局加载jquery后放置JS 问题是haml不喜欢缩进的多行文本(我认为) 我正在努力做到以下几点:HAML在使用content_for、for JavaScript时有多行,javascript,ruby-on-rails,haml,content-for,Javascript,Ruby On Rails,Haml,Content For,我试图在页面上输出一些内联js。我真的不想把它添加到任何JS文件中,因为它是如此的简单和一次性使用。也就是说,我正在使用haml,并尝试使用content_for,以便在从布局加载jquery后放置JS 问题是haml不喜欢缩进的多行文本(我认为) 我正在努力做到以下几点: =content_for :javascript do $(function(){ $("#sell_tickets_here").live("vclick",function(){ if($(thi
=content_for :javascript do
$(function(){
$("#sell_tickets_here").live("vclick",function(){
if($(this).is("checked"))
$("#tickets_here").display("inline");
else
$("#tickets_here").display("none");
});
});
在我的布局中,我有:
= yield(:javascript)
如果我在content_for语句后面只有一行,这实际上是可行的 正确的语法应该是:
- content_for :javascript do
:javascript
$(function(){
$("#sell_tickets_here").live("vclick",function(){
if($(this).is("checked"))
$("#tickets_here").display("inline");
else
$("#tickets_here").display("none");
});
});
请注意破折号与等号以及:javascript
。HAML可以很好地处理多行,只要它是2空间缩进的
然后在你观点的另一部分:
= content_for(:javascript)
这就是所谓的缩进,在这种情况下,你可以转义,呃,缩进:
=content\u for:javascript do
/$(函数(){
/$(“在这里出售门票”).live(“vclick”,函数(){
/如果($(this).is(“选中”))
/$(“#此处为票证”)。显示(“内联”);
/否则
/$(“此处有票”)。显示(“无”);
/ });
/ });
谢谢,这很有效。唯一需要注意的是,如果您有来自多个页面的javascript内容,它将为每个页面添加一个脚本标记。haml:javascript包装