4

Rack-pjax を有効にした Rails 3.2 アプリでは、次の問題が発生します。

  1. リンクをクリックすると、pjax を介してデータテーブルを含むページが読み込まれます。すべて順調。
  2. ページが「何でも」ロードする別のリンクをクリックします。
  3. 戻るボタンを押すと、データテーブル ページが読み込まれます。しかし、データテーブルが機能していません。

2 つのテーブル (データを含まない) をロードすることもあれば、古いデータテーブルだけをロードすることもあります。ただし、データを操作することはできません (検索、ページ 2 への移動など)。完全に静的です。

テーブルのデータは、アプリのレール部分から json (サーバー側処理) を介して提供されます。「pjax:start」または「pjax:end」でデータテーブルの破棄と再構築をすでに試みました。

ご協力いただきありがとうございます :)

4

1 に答える 1

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
    })
于 2013-02-27T18:05:16.227 に答える