2013-05-22 2 views
1

많은 프로젝트가 있습니다. 내 프로젝트에는 많은 Ajax 링크가 있으며 모든 Ajax 요청에 대해 회 전자를 구현할 수 있습니다. 모든 Ajax 요청에 대해 내 application.js에서 ajaxStart 및 ajaxStop 콜백을 전역 적으로 사용했습니다.rails3 특정 Ajax 호출에 대한 회 전자 사용 안 함

내 application.js

$(document).ready(function() { 

    $(this).ajaxStart(function(){ 
    $("#ajax_loader").modal('show'); 
    }) 
    .ajaxStop(function(){ 
    $("#ajax_loader").modal("hide"); 
    }); 

}); 

그러나 일부 페이지는 빠른 작은 아약스 호출을 많이 가지고 회는data-spinner = false속성을 가지고 몇 가지 아약스 링크를 필요하지 않습니다.

나는 웹을 여행하고 내 요구 사항에 맞지 않는 해결책 (바인딩 해제)을 발견했습니다. 예를

index.html.erb를 들어

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
    $(this).unbind("ajaxStart ajaxStop") 
    }); 
</script> 

<%= link_to "show", xxx, :remote => true, "data-spinner" => true %> 

<%= link_to "update", xxx, :remote => true, "data-spinner" => false %> 

<%= link_to "remove", xxx, :remote => true, "data-spinner" => false %> 

때어 페이지에서 사용할 수있는 모든 아약스 통화 스피너를 사용할 수 없게됩니다.

어떤 아이디어 나 해결책이 있습니까?

미리 감사드립니다.

답변

2

원하는 요소 앞에 ajax :를 jquery-ujs에 바인딩 할 수 있습니다. See this article

당신이 도움이

$('a[data-remote=true][data-spinner=true]').on('ajax:before', function(){ 
    $("#ajax_loader").modal('show'); 
}) 

$('a[data-remote=true][data-spinner=true]').on('ajax:complete', function(){ 
    $("#ajax_loader").modal("hide"); 
}) 

희망과 같은 요소를 갖는 데이터 스피너를 타겟팅 할 수 있습니다.

업데이트 : 그것은 data-spinner 속성이 경우 모든 remote => 'true' 링크 수표를 유지할 수

.

$('a[data-remote=true]').on('ajax:before', function(){ 

    var nospinner = false; 

    if($(this).attr('data-spinner') != undefined && $(this).attr('data-spinner') == "false"){ 
     nospinner = true; 
    } 

    if(nospinner==false) { 
     $("#ajax_loader").modal('show'); 
    } 

}) 
+0

고맙습니다. 죄송합니다! 지금까지 나는 ajax 링크에서 "data-spinner"=> true 속성을 사용하지 않았습니다. 많은 아약스 링크로 인해 아약스 회 전자를 원하지 않는 링크에만 "data-spinner"=> false를 적용 할 계획입니까? 어떤 해결책? –

+0

귀하의 요구 사항에 대한 답변을 업데이트했습니다. 그것이 도움이되기를 바랍니다. 또한 Ajax를 바인딩 할 수 있도록 스피너가 표시되도록 모든 링크에 데이터 속성을 지정하는 경우 더 좋을 것입니다. – anpsmn

+0

@anpsmn client_side_validations gem을 사용하는 경우 gem은 uniqness 유효성 검사를 위해 ajax 요청을하고,이 경우 회 전자를 표시하는 방법은 무엇입니까? – nishanthan