0

Ventura が提案したUsing Jquery Datatable with AngularJsと同様に、角度ディレクティブ (My ディレクティブ: https://gist.github.com/jianbo/6734624 ) で datatable lib を使用しています。私はfnDrawに問題があります.私のアプリでは、angularを使用しているため、ページがまったくリロードされないため、複数のWebページにそれぞれデータテーブルがあります。

  $(".resource-filter").live "change", (event) ->
    scope.dataTable.fnDraw() // This is where error triggered 

  $("#sSearch").live "keyup", (event) ->
    scope.dataTable.fnDraw() // This is where error triggered

データテーブルは引き続き各ページにデータをロードできますが、複数のページにアクセスした後、scope.dataTable.fnDraw() を呼び出してデータテーブルをフィルタリングしようとすると、次のエラーが発生しました:Uncaught TypeError: null のプロパティ 'oFeatures' を読み取れません

reDraw 関数にいくつかのブレーク ポイントを配置したところ、oSettings (行 5557) が null であることがわかりました。複数のデータテーブルが含まれている DataTable.settings を見つけることができますが、for ループは現在のものと一致しません

何か案が?

    function _fnSettingsFromNode ( nTable )
     {
      for ( var i=0 ; i<DataTable.settings.length ; i++ )
      {
        if ( DataTable.settings[i].nTable === nTable )
        {
          return DataTable.settings[i];
        }
      }

      return null;
    } 

    oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] );
4

2 に答える 2

1

複数の Datatable インスタンスがある場合、「scope.dataTable」は現在の Datatable を参照できないようです。

これで問題は解決しました:

scope.dataTable.fnSettings().oInstance.fnFilter()
于 2013-09-30T20:36:40.547 に答える
0

は推奨されていないため、 に変更.liveしてみてください。.on.live

于 2013-12-24T07:22:03.253 に答える