2013-03-08 57 views
29

我有以下幾點:軌的link_to:遠程

<%= 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 %> 

它會彈出一個引導模態進行確認,我想鉤住AJAX調用,這樣我就可以顯示一個微調或某些類型的文本。

我知道,我可以用不顯眼的JavaScript來聽,像這樣的單擊事件,如果我不使用「:遠程=>真正的」在我的link_to

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 

,但不知道如何結合兩個使用':remote => true'

有什麼建議嗎?

感謝您的幫助

+0

這可能是你在找什麼:github.com/rails/ jquery-ujs/wiki/ajax – michaelrshannon 2013-03-08 12:41:25

回答

62

您可以綁定到ajax調用是這樣的:

<%= 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

我正在嘗試做同樣的事情..但不知何故'ajax:complete'不會被解僱,只有'beforeSend'正在工作。Iam在我的情況下使用GET。 – 2015-06-23 00:50:34

+0

@RahulDess您的服務器是否產生響應?我可以想象完成回調不會觸發的唯一原因是請求永遠不會完成。 – Arjan 2015-06-23 09:11:15

+1

請求成功完成..但明顯的一點是,我通過控制器中的javascrpipt呈現部分內容。這個改變什麼嗎? – 2015-06-23 14:11:17

10

你不需要把兩者結合起來。只需使用format.js來調用javascript即可。

在你的控制器:

控制器

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"))%>"); 

_text_message.html.erb

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

'$(「#link-delete」)。html(「<%= escape_javascript(render(:partial =>」text_message「))%>」);' 可縮寫爲 '$(「#link-delete」)。html(「<%= j render」text_message「)% >「);' – Arjan 2013-03-08 12:29:27

+1

哇,我從來不知道這一點。這真好。但是它將如何知道你正在渲染一個部分或簡單的文本?您尚未在渲染中定義部分。 – 2013-03-08 12:32:34

+0

當然,我知道,但那是在執行了ajax請求之後。我想在調用ajax調用之前顯示「加載...」消息。 – cgiacomi 2013-03-08 12:34:03