2017-02-03 110 views
0

我正在使用角度数据表来加载服务调用返回的数据列表。它与选项启用使用rowCount时可变切换分页长度服务器端分页角度数据表dtInstance.reloadData()与dtInstance.rerender()之间的区别是什么

var vm=this; 
vm.DisplaySLAChart =true;   
var rowCount = (vm.DisplaySLAChart==true?5:10); 
vm.dtInstance = {};  

vm.dtOptions = DTOptionsBuilder.newOptions() 
.withFnServerData(serverData) 
.withDataProp('data') 
.withOption('processing', true) 
.withOption('serverSide', true) 
.withOption('paging', true) 
.withPaginationType('full_numbers') 
.withDisplayLength(rowCount) 
.withDOM('<"top">t<ip"bottom"><"clear">'); 

function serverData(sSource, aoData, fnCallback, oSettings) 
{ 
    //Server side data fetching logic 
} 

我不得不改变基于“vm.DisplaySLAChart”标志由用户在复选框NG-改变设置此页长度的要求事件。复选框正在使用ng-model设置“vm.DisplaySLAChart”的值。 如果标志为真,则每页只显示5条记录。否则每页显示10条记录。

复选框ng-change调用以下方法。

vm.toggleLength = function() { 

var rowCnt = (vm.DisplaySLAChart == true ? 5 : 10); 
vm.dtOptions.withDisplayLength(rowCnt); 
vm.dtInstance.reloadData(); 
}; 

在这里,如果我用vm.dtInstance.reloadData()然后在rowcnt变量指定的数据表加载用数字记录的数据。没有问题。

如果我用vm.dtInstance.rerender();而不是vm.dtInstance.reloadData();,那么显示的记录数有时是错误的。

我想知道rerender和reloaddata有什么区别。 欣赏你的帮助

回答

1

dtInstance.rerender():这将完全重绘表。这不需要将数据重新发送到服务器。

dtInstance.reloadData():通过将请求重新发送到服务器来重新装载DataTable的数据。此API仅适用于Ajax呈现器和Promise呈现器。

相关问题