繁体   English   中英

角数据表fnDraw()不起作用

[英]Angular datatable fnDraw() doesn't work

我在类似于Ventura建议的将AngularJs使用Jquery Datatable的角度指令(我的指令: https : //gist.github.com/jianbo/6734624 )中使用数据表库 我在使用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

我的数据表仍然可以在每一页上加载数据,但是在访问了多个页面之后,然后尝试调用scope.dataTable.fnDraw()来过滤我的数据表,我收到了此错误:Uncaught TypeError:无法读取null的'oFeatures'属性

我在reDraw函数中放置了一些断点,发现oSettings(第5557行)为空,在_fnSettingsFromNode函数中,我可以看到DataTable.settings [i] .nTable === nTable(第4611行)总是返回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] );

似乎是在有多个Datatable实例时,“ scope.dataTable”无法引用当前Datatable。

这样就解决了问题:

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

尝试将.live更改为.on ,因为不推荐使用.live

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM