ajax: success and ajax: kompletne wywołanie zwrotne nie działa podczas używania UJS w Railsach
Mam link, który po kliknięciu wywoła wywołanie ajax, a następnie zastąp to łącze innym łączem, mówi na przykład, że oryginalny link to „dodaj przyjaciela”, a gdy kliknę ten link, wyśle żądanie ajax do akcji add_friend jeśli przyjaciel zostanie dodany, powyższy link zostanie zastąpiony innym linkiem „anuluj żądanie”, do tego używam ujs:
$("#link_for_friend").html("<%= escape_javascript(render('users/cancel_link')) %>")
kiedy próbuję dodać wywołanie zwrotne (: sukces i: kompletne), nie działa, próbowałem z: beforeSend jak poniżej działa:
$(document).ready ->
$("#my_link").on "ajax:beforeSend", ->
alert("hello")
istnieje rozwiązanie zapewniające sukces i pełne wywołanie zwrotne?
uwaga: moim pomysłem jest pokazanie loader.gif, gdy wyzwalany jest ajaxStart, a następnie ukrywanie go, gdy ajax: wywołanie pełne wywołane jest przynajmniej, także jeśli jest jakiś błąd chcę go pokazać, gdy ajax: błąd jest wyzwalany
Aktualizacja
Próbowałem rozwiązać ten problem, przenosząc kod wewnątrz action.js.erb do pliku js w następujący sposób:
$(document).ready ->
$(document).on("ajax:success", "a.invitation-box", ->
$("#link_for_friend").html("<%= escape_javascript(render('users/cancel_link')) %>")
).on "ajax:error", "a.invitation-box", ->
alert "error"
ale w ten sposób nie można umieścić renderowania ('users / cancel_link') wewnątrz pliku JS