在Rails 4中加载微调器的Ajax

时间:2015-07-26 18:45:43

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4

我在rails中发送ajax请求,并且我收到了一些数据表的数据

ajax触发在链接标记上使用remote:true发生

这是index.js.erb(对此进行了ajax调用)

$('.lessons_table').removeClass('hidden');
$('.lessons').empty();

<% @lessons.each do |l| %>
  $('.lessons').append('<tr>');
  $('.lessons').append('<td><%= l.id %></td>');
  $('.lessons').append('<td><%= best_in_place l, :title, url: "lessons/#{l.id}", cancel_button: 'X' %></td>');
  $('.lessons').append('<td><%= best_in_place l, :duration, url: "lessons/#{l.id}", cancel_button: 'X' %></td>');
  $('.lessons').append('<td><%= best_in_place l, :video, url: "lessons/#{l.id}", cancel_button: 'X' %></td>');
  $('.lessons').append('<td><%= best_in_place l, :course_id, url: "lessons/#{l.id}", cancel_button: 'X' %></td>');
  $('.lessons').append('<td><%= link_to "Remove", admin_course_path(l), method: :delete, data: { confirm: "Are you sure?" }%></td>');
  $('.lessons').append('</tr>');
<% end %>

的application.js

$(document).ready(function () {
// hide spinner
  $(".spinner").hide();

  $(document).ajaxStart(function() {
    $(".spinner").show();
  }).ajaxComplete(function() {
      var $loading = $(".spinner");
      setTimeout(function(){
          $loading.hide();
      },1000); //Timeout so you can see the loading happen
  });
});

index.html.erb

<div class="spinner">Loading</div>

我想要的是,当我点击链接以检索此数据时,我希望在指定的时间段内显示加载文本或css微调器,并且当微调器或文本消失时,数据将出现。< / p>

我使用了application.js中的代码,但它无法正常工作。

1 个答案:

答案 0 :(得分:2)

为了将来的参考,这实际上对我有用,不需要定时器等。只要ajax请求没有完成就需要它。

equals()