2011-02-01 60 views
5

问候!ERB用HAML替换失败JS

我一直在与HAML鬼混,并将几个视图部分从.erb转换为.haml。但是,当我试图转换.js.erb视图,它只是不会执行。例如。似乎我的.js.haml未执行,而.js.erb按原样工作。

这里是我的.js.erb(工作以及):

<% if @quote.errors.any? && @quote.approved? %> 
    $("#data_form").html("<%= escape_javascript(render(:partial => "form")) %>"); 
<% else %> 
    $("#data_grid").prepend("<%= escape_javascript(render :partial => "quote", :locals => { :quote => @quote }) %>"); 
    $("#quote_author,#quote_body").each(function(i,e) { 
    $(this).val(""); 
    }); 
<% end %> 

这里就是我与替换它:

-if @quote.errors.any? && @quote.approved? 
    $("#data_form").html("#{escape_javascript(render(:partial => "form"))}"); 
-else 
    $("#data_grid").prepend("#{escape_javascript(render :partial => "quote", :locals => { :quote => @quote })}"); 
    $("#quote_author,#quote_body").each(function(i,e) { 
    $(this).val(""); 
    }); 

有什么问题,该如何解决呢?

+0

你不执行指的是JavaScript的?你检查过浏览器得到的响应是什么(例如从Firebug检查)。 – Heikki 2011-02-01 11:36:58

+0

这实际上是一个非常重要的问题,不确定为什么某些其他人在说'.js.haml`不受支持 – prusswan 2012-08-23 16:43:35

回答

12

尝试:

-if @quote.errors.any? && @quote.approved? 
    :plain 
    $("#data_form").html("#{escape_javascript(render(:partial => "form"))}"); 
-else 
    :plain 
    $("#data_grid").prepend("#{escape_javascript(render :partial => "quote", :locals => { :quote => @quote })}"); 
    $("#quote_author,#quote_body").each(function(i,e) { 
     $(this).val(""); 
    });