2014-10-20 45 views
0

我使用jquery.dataTables.js版本1.10.0构建DataTable。我正在使用分页处理服务器处理,除了一件事外,一切都很好。当我刷新浏览器(Chrome或IE 10)时,不会执行ajax代码来刷新表格。因为这个桌子也不爽。如果我使用浏览器返回或转发,它可以很好地工作。在浏览器刷新时Ajax调用不在DataTable中

有什么特别的我需要做的强制DataTable重新加载浏览器刷新?

这里是我的dataTable声明:

 var dataTable = table.dataTable({ 
      "retrieve": true, 
      "lengthMenu": [ [10, 30, 50, -1], [10, 30, 50, "All"] ], 
      "serverSide": true, 
      "paging": true, 
      "searching":false, 
      "pageLength": 30, 
      "columns": [ { 
      "sTitle": "col1" 
      }, { 
      "sTitle": "col2" 
      } ], 
      "dom": '<"top"if>rt<"bottom"lp><"clear">', 
      "ajax": { 
       // set up input parameters 
       "data": function(data) { 
        var length = table.dataTable().api().page.len(); 
        var url = baseUrl + '/' + data.start + '/' + length; 
        table.dataTable().api().ajax.url(url); 
        draw = data.draw; 
        return {}; 
       }, 
       "url": baseUrl, //will be reset by data function 
       "dataFilter": function(data,type) { 

        var results = {}; 
        .... //reformat the REST response for DataTable 

        return JSON.stringify(results); 
       }, 
       "dataSrc": function(data) { 

        // hide length menu if records are less than minimum display 
        if (data.recordsTotal <= 10) { 
          $('#' + callType + relNcid + '_length').hide(); 
         } 

        // hide page menu if all records fit on this page 
        if (data.recordsTotal <= table.dataTable().api().page.len()) { 
         $('#' + callType + relNcid + '_paginate').hide(); 
        } else { 
         $('#' + callType + relNcid + '_paginate').show(); 
        } 
        table.addClass('table table-condensed'); 
        $anchorScroll(); 
        return transformRelDataForTable(data.data); 
       } 
      } 
     }); 

这段代码被浏览器刷新但是执行的,当我把在“画”功能突破点或“dataFilter”功能,它永远不会打破。

我使用jQuery的 1.11.0 AngularJS 1.2.13

回答

0

我发现和解决了这一问题。它是dataTables的外部。这是因无声无故访问表引起的。我的代码:

$('#' + relPosition).dataTable({.....}); 

默默地失败,因为的jQuery引用的表还不存在,因为它是一个NG重复条款的一部分,角还没有呈现在DOM节点。在逐步完成dataTable代码时,我注意到它将所有东西都短路了,因为表不存在(正确如此),但在这种情况下让dataTable代码抛出异常会非常有帮助。它会救了我几天的麻烦。