我正在使用角度数据表来加载从服务调用返回的数据列表。它启用了服务器端分页,并且可以使用rowCount变量
切换分页长度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
}
我需要根据&#34; vm.DisplaySLAChart
&#34;更改此页面长度用户在复选框ng-change事件上设置的标志。复选框正在设置&#34; vm.DisplaySLAChart
&#34;的值使用ng-model。
如果该标志为true,则每页仅显示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之间有什么区别。 感谢您的帮助
答案 0 :(得分:1)
dtInstance.rerender():这将完全重绘表格。这不需要将数据重新发送到服务器。
dtInstance.reloadData():通过将请求重新发送到服务器来重新加载DataTable的数据。此API仅适用于Ajax渲染器和Promise渲染器。