我如何将“var status = true”从我​​的jquery脚本传递给js.erb文件或其他解决方案?

时间:2017-01-05 14:33:45

标签: jquery ruby-on-rails ajax

我有一个控制器动作,如下所示:

@sports = @articles.sports.paginate(page: params[:sports_page], per_page: 6)
@world =  @articles.world.paginate(page: params[:world_page], per_page: 6)
respond_to do |format|
  format.html { render 'index_region' }
  format.js { render :file => "/articles/latest.js.erb" }
end 

这两个对象同时在视图中分页。

我想通过ajax/js.erb

对这两个对象进行分页
$(document).on('turbolinks:load', function () {
  if($('#sports').size() > 0) {
    $('.sports-pagination').hide();
    $('#load_more_photos_sports').show();
    $('#load_more_photos_sports').on('click', function() {
      var urlsports = $('.sports-pagination>.pagination .next_page a').attr('href');
      $.getScript(urlsports);
    });
  }
  if($('#world').size() > 0) {
    $('.world-pagination').hide();
    $('#load_more_photos_world').show();
    $('#load_more_photos_world').on('click', function() {
      var urlworld = $('.world-pagination>.pagination .next_page a').attr('href');
      $.getScript(urlworld);
    })
  }
});

但是无论点击哪个按钮,我想它必须通过相同的js.erb文件?那是对的吗?或者我可以告诉控制器响应不同的js.erb文件,具体取决于点击了哪个按钮?

或者,如果我可以将var status = truevar status = false添加到代码中并将其传递到js.erb文件中,那么我可以设置一个仅运行与之相关的代码的if statement单击的按钮。

1 个答案:

答案 0 :(得分:0)

我通过addingClass解析了jquery脚本中的元素,然后使用if statement中的js.erb来检查该类。如果有更好的方法,请告诉我。