2013-03-08 13 views
29

Ben şu var:raylar link_to: Uzak

onay için Bootstrap Modal getirir ve ben bir spinner veya metin çeşit gösterebilmemiz için AJAX arama üzerine kanca istedi
<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %> 
    <i class="icon-trash"></i> 
<% end %> 

.

ben KULLANMAYIN eğer, şöyle click olayı dinlemek için göze batmayan javascript kullanabileceğinizi biliyor ': Uzak => true' benim link_to içinde

jQuery -> 
    $('.link-delete').live 'click', (event) -> 
    $('.link-delete').html("Loading...") #THE MSG OR ANIMATION I WANT TO DISPLAY 
    $.get(this.href, null, null, 'script') 
    false 

ama emin nasıl birleştirileceği iki: 'remote => true' kullanırken:

Herhangi bir öneriniz var mı?

yardım için teşekkürler

+0

Bu aradığınızı olabilir jquery-ujs/wiki/ajax – michaelrshannon

cevap

62

_text_message.html.erb: github.com/rails/:

<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %> 
    <i class="icon-trash"></i> 
<% end %> 

$('.link-delete').bind('ajax:beforeSend', function() { 
    $('#mySpinner').show(); 
}); 

$('.link-delete').bind('ajax:complete', function() { 
    $('#mySpinner').hide(); 
}); 
+0

Aynı şeyi yapmaya çalışıyorum ..Ama bir şekilde 'ajax: tamam' kovulmuyor.Yalnızca 'beforeSend' çalışıyor.Davamda GET kullanıyorum. –

+0

@RahulDess Sunucunuz bir yanıt veriyor mu? Tetiklemenin tam bir geri dönüşü için hayal edemememin tek nedeni, taleplerin asla tamamlanmadığıdır. – Arjan

+1

istekleri başarıyla tamamlandı .. ama dikkat çeken nokta benim denetleyicimde javascrpipt aracılığıyla kısmi render olmasıdır. Bu herhangi bir şeyi değiştirir mi? –

10

İkisini birleştirmenize gerek yoktur. Javascript'i çağırmak için sadece format.js'yi kullanın. Kumandanızda olarak

:

Kontrolör

def my_method 
    #code here 
    respond_to do |format| 
     format.js {} 
    end 
    end 

my_method.html.erb

<div id = "link-delete"></div> 

my_method.js.erb

$("#link-delete").html("<%= escape_javascript(render(:partial => "text_message"))%>"); 

Böyle ajax çağrılara bağlayabilir

<p>Loading...</p> 
+7

'$ (" # link-delete "). html (" <% = escape_javascript (render (: kısmi => "text_message"))%> "); , için kısaltılabilir '$ (" # link-delete "). html (" <% = j render "text_message")% > ") – Arjan

+1

Vay, bunu hiç bilmiyordum. Bu iyi. Ama kısmi veya basit bir metin oluşturduğunuzu nasıl anlayacaksınız? İşleminizde kısmi tanımlanmamış. –

+0

Elbette, bildiğim, ama ajax isteğinin yerine getirilmesinden sonra. Ajax çağrısı çağrılmadan önce 'Loading ...' mesajını göstermek istiyorum. – cgiacomi

İlgili konular