Ruby on rails 3.2 PJAX/Back按钮销毁数据表

Ruby on rails 3.2 PJAX/Back按钮销毁数据表,ruby-on-rails-3.2,datatables,rack,pjax,Ruby On Rails 3.2,Datatables,Rack,Pjax,在启用rack pjax的Rails 3.2应用程序中,出现以下问题: 单击一个链接,其中包含datatable的页面将通过pjax加载。一切都很好 你点击另一个链接,页面“随便”加载 点击返回按钮,datatables页面将加载。但数据表不起作用 有时它加载2个表(其中没有数据),有时它只加载旧的数据表。但不可能操作数据(搜索、转到第2页等)。它完全是静态的 该表的数据通过json(服务器端处理)从应用程序的rails部分提供。 我们已经尝试在“pjax:start”或“pjax:end”上销

在启用rack pjax的Rails 3.2应用程序中,出现以下问题:

  • 单击一个链接,其中包含datatable的页面将通过pjax加载。一切都很好
  • 你点击另一个链接,页面“随便”加载
  • 点击返回按钮,datatables页面将加载。但数据表不起作用
  • 有时它加载2个表(其中没有数据),有时它只加载旧的数据表。但不可能操作数据(搜索、转到第2页等)。它完全是静态的

    该表的数据通过json(服务器端处理)从应用程序的rails部分提供。 我们已经尝试在“pjax:start”或“pjax:end”上销毁和重建数据表


    谢谢你的帮助:)

    我找到了一个可行的解决方案,希望没有意外的问题

    $(document).ready ->
      initLeagueIndexDataTable()
    
    $(document).on 'pjax:end', ->
      initLeagueIndexDataTable()
    
    initLeagueIndexDataTable : ->
      if ($('#league_index').length > 0 && !$('#league_index_wrapper').length > 0)
        $('#league_index').dataTable({
          'sPaginationType': 'full_numbers',
          'bJQueryUI': true,
          'bProcessing': true,
          'bServerSide': true,
          'sAjaxSource': $('#league_index').data('source'),
          'aoColumnDefs': [
            { "bSortable": false, "aTargets": [ 1 ] },
            { "bSortable": false, "aTargets": [ 2 ] },
            { "bSortable": false, "aTargets": [ 3 ] },
            { "bSortable": false, "aTargets": [ 4 ] },
            { "bSortable": false, "aTargets": [ 5 ] }
          ],
          'bFilter': false,
          'iDisplayLength': 25,
          'bDestroy': true
        })
    

    尝试运行在
    ready
    事件上创建表的函数-我的意思是在简单的页面加载上(除了在
    pjax:start”或“pjax:end
    上创建表之外),我也遇到了这种情况。我在document.ready和pjax:end上有我的datatables初始化代码,但我仍然看到了问题。我尝试在pjax:start上移动它,但我不再看到这个问题,而是引入了另一个问题,其中一些数据表根本没有初始化。