PJAX / Back-Button破坏数据表

时间:2012-11-05 16:54:36

标签: ruby-on-rails-3.2 datatables rack pjax

在我们的Rails 3.2应用程序中启用了rack-pjax会出现以下问题:

  1. 您点击链接,其中包含数据表的页面通过pjax加载。一切都很好。
  2. 您点击antoher链接页面“无论如何”加载。
  3. 您点击数据表页面加载的后退按钮。但是数据表不起作用。
  4. 有时它会加载2个表(其中没有数据),有时它只加载旧的数据表。但它不可能操纵数据(搜索,转到第2页等)。它完全静止。

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

    感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

我找到了一个可行的解决方案,希望没有不可预见的问题。

$(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
    })