2011-02-01 2 views
5

인사말!HAML을 사용한 ERB 대체가 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

은 당신이 자바 스크립트가 실행되지 뜻인가요? 브라우저가 가져 오는 응답이 무엇인지 확인 했습니까 (예 : Firebug에서 확인하십시오). – Heikki

+0

이것은 실제로 꽤 중요한 질문입니다. 다른 곳에서'.js.haml'이 지원되지 않는다고 말하는 이유를 모르겠습니다. – prusswan

답변

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(""); 
    }); 
+1

@shybovycha :이 질문을 제기 해 주셔서 감사합니다. @ PeterWong : 답변보다 : +1 – Pravin

+0

@Pravin, 당신은 환영합니다! =) – shybovycha

관련 문제