我想进行一次AJAX调用,不仅更新DataTable,还更新页面中其他位置的div.我正在使用ajax-dataTable-rails gem.我编写了AJAX调用的上半部分,例如:

$('#people-datatable').dataTable
    processing: true
    order: []
    serverSide: true
    ajax: data: (d) ->
      d.url = $('#people-datatable').data('source');
      success: ({ data }) ->
        people_ids = data.map (people) -> people.DT_RowId
        $("#bouba").html people_ids.join()
      return

或者,我也try 了以下操作,但没有成功(第二个AJAX调用不存在数据):

  $('#people-datatable').dataTable
    processing: true
    order: []
    serverSide: true
    ajax: data: (d) ->
      d.url = $('#people-datatable').data('source');
      d.recordsTotal = $.ajax({
        url: $('#people-datatable').data('source'),
        dataType: "json",
        type: 'GET',
        async: false,
        success: ({ data }) ->
          people_ids = data.map (people) -> people.DT_RowId
          $("#bouba").html people_ids.join()
          return
      });
      return

(我已经删除了与列相关的其余代码)

它看起来不像成功触发器,因为在加载数据之后没有发生任何事情. 请问哪条路是正确的?

推荐答案

try :

$('#people-datatable').dataTable
  processing: true
  order: []
  serverSide: true
  ajax: data: (d) ->
    d.url = $('#people-datatable').data('source');
    d.recordsTotal = $.ajax({
      url: $('#people-datatable').data('source'),
      dataType: "json",
      type: 'GET',
       async: false,
      success: ({ data }) ->
        people_ids = data.map (people) -> people.DT_RowId
        $("#bouba").html people_ids.join()
        return
    }).responseJSON.recordsTotal;
    return 

或者,您可以try 使用DataTable的DrawCallback选项.此选项在每次绘制DataTable后调用.您可以使用它来更新#Bouba Dom.下面是一个例子:

$('#people-datatable').dataTable
  processing: true
  order: []
  serverSide: true
  drawCallback: ->
    people_ids = @api().rows().data().map (people) -> people.DT_RowId
    $("#bouba").html people_ids.join()
  ajax: data: (d) ->
    d.url = $('#people-datatable').data('source');
    return 

Ruby-on-rails相关问答推荐

参数数量错误(给定1个,预期为0个;必需关键字:IO、文件名)-活动存储

Rails 7,Hotwire 动态表单,更新值不起作用

Rails:has_many 通过不返回结果

为什么 Image_tag 产生images/...而不是assets/....?

为什么总是有东西在我的 mac 上的 5000 端口运行

I18n 用于特定于模型的 Rails 提交按钮

如何获取 Ruby on Rails 生成的表单元素 id 以供 JavaScript 参考?

使用 Devise 令牌登录,这是内置的吗?

对于 Visual Studio 用户来说,最好的 Ruby on Rails 环境是什么?

Rails 在关联模型中排序

Phusion 乘客(适合傻瓜!)

什么是Ruby 用于 BESIDES 轨道?

如何将自定义路由添加到资源路由

如何让 ActiveAdmin 使用强参数?

用户注册时设计确认令牌无效

如何覆盖:在 has_many 中定义的顺序

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

rake db:回滚不起作用?

为什么不对 Rspec + Selenium 使用共享的 ActiveRecord 连接?

Rails:您已经激活了 rake 10.3.1,但您的 Gemfile 需要 rake 10.2.2 (Gem::LoadError)