2011-02-01 31 views
5

Greetings'de başarısız!HAML ile ERB değiştirme, JS

HAML ile dalga geçtim ve .erb'dan .haml numaralı kısmi görünümleri kısmi olarak dönüştürdüm. Ama ben .js.erb görünümü dönüştürmek için çalıştığında, sadece yürütmeyecek. Örneğin. Benim .js.haml benim yürütülürken .js.erb olması gerektiği gibi çalışır gibi görünüyor.

İşte benim (de çalışır) .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 %> 

Ve burada ben bunu yerine gidiyorum ne:

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

Sorun ne olduğunu ve bunu nasıl çözmek için?

+0

javascript yürütülmez mı demek istiyorsun yani? Tarayıcının aldığı yanıtın ne olduğunu kontrol ettiniz (örneğin, Firebug'dan kontrol edin). – Heikki

+0

Bu başka bir yerde bazı pple .js.haml' desteklenmeyen 'diyorsun niçin, aslında emin oldukça önemli bir soru – prusswan

cevap

12

Dene:

-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: Bu soruyu yetiştirmek için teşekkürler. @PeterWong: Cevap için thans :) +1 – Pravin

+0

@Pravin, hoş geldiniz! =) – shybovycha