2013-05-21 23 views
5

Javascript ile bir HTML isteğine yanıt vermek mümkün mü? Bununla, sayfanın yenilenmesini ve bazı javascript kodlarının yürütülmesini istemediğimi kastediyorum. Bu sadece sunucu tarafını değiştirerek mümkün mü acaba? Benim eylem olarakJavascript ile bir HTML isteğine yanıt vermek ister misiniz?

, böyle js ve html yanıt vermek için seçilen bir şey var:

respond_to do |format| 
    format.js 
    format.html 
end 

Ve tarayıcı bir javascript istediğinde elbette oluşturulması gereken bir .js.erb dosya var.

Bu yapılabilir mi? Nasıl?

+0

Eğer js ile bu rotayı çağırarak denedin mi bana güzel görünüyor? –

+0

Ne demek istiyorsun? İsteğin bir "html" sormasını istiyorum ve yanıt bir "js". Yanılıyorsa – fotanus

+0

beni düzeltin. Http://someurl.com/someroute yapmak ve http://someurl.com/someroute.js yapmak vs js döndürmek mi istiyorsunuz? –

cevap

3

Bunu yalnızca sunucu tarafı kodunu değiştirerek yapamazsınız. Javascript'in sunucunun yanıtı üzerine yürütülmesini istiyorsanız, formun javascript yoluyla gönderilmesi gerekir. Bunun nedeni javascript'in sunucudan gelen cevabı değerlendirip kodu çalıştırmasıdır.

Bu

biraz trivially Rails eklenebilir: o gönderildiğinde, o zaman javascript geri gönderebilir

<%= form_for @user, remote: true %> 

. Örneğin, bir kullanıcı eklendiğini uyarmak için:

/app/views/users/create.js.erb

alert("user <%= j @user.email %> was added"); 
+0

Cevabınız için teşekkürler, bunun mümkün olmadığına inanıyorum. Hiç kimse bir şeyle gelmezse, cevabınızı kabul edeceğim. Kolay olduğunu anlıyorum, ama 'rjs' den (rjs'yi hatırlıyor musun?) 'Ujs'ye geçiyorum ve bu yüzden bu çağrıları değiştirmek için çok yer var ... – fotanus

İlgili konular