2013-09-27 92 views
0

我在一個類似於文圖拉的角度指令(我的指令:https://gist.github.com/jianbo/6734624)中使用了數據表庫lib建議Using Jquery Datatable with AngularJs。我有一個與fnDraw的問題,在我的應用程序中,我有多個網頁,每個網頁都有一個數據表,因爲我使用角度,頁面根本不會重新加載。角度數據表fnDraw()不起作用

$(".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 

我的DataTable中仍然可以加載在每一頁上的數據,但訪問多個頁面後,再嘗試調用scope.dataTable.fnDraw()來過濾數據表我,我得到這個錯誤:遺漏的類型錯誤:不能讀屬性'oFeatures'null

我在reDraw函數中放了一些斷點,並在_fnSettingsFromNode函數中發現了oSettings(第5557行)爲null,我可以看到DataTable.settings [i] .nTable === nTable(第4611行)alwasy返回false,並且我可以發現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]); 

回答

1

它似乎是有多個Datatable實例時,「scope.dataTable」不能引用當前Datatable。

這解決了這個問題:

scope.dataTable.fnSettings().oInstance.fnFilter() 
0

嘗試改變.live.on,因爲.live已被棄用。