我在我的应用程序中使用了angular datatable。我应用了下面给出的选项,
$scope.dtOptions = DTOptionsBuilder.newOptions()
.withOption('responsive', true)
.withOption('bAutoWidth', false)
.withOption('paging', false)
.withOption('sorting', false)
.withOption('searching', false)
.withOption('info', false)
.withDOM('frtip');
我将列定义设置如下,
$scope.dtColumnDefs = [
DTColumnDefBuilder.newColumnDef(0).notSortable(),
DTColumnDefBuilder.newColumnDef(1).notSortable(),
DTColumnDefBuilder.newColumnDef(2).notSortable(),
DTColumnDefBuilder.newColumnDef(3).notSortable(),
DTColumnDefBuilder.newColumnDef(4).notSortable(),
DTColumnDefBuilder.newColumnDef(5).notSortable(),
DTColumnDefBuilder.newColumnDef(6).notSortable(),
DTColumnDefBuilder.newColumnDef(7).notSortable()
];
我在html页面中使用了角度表,
<table id="userTable" datatable="ng" dt-options="dtOptions" dt-column-defs="dtColumnDefs" class="table table-striped table-bordered dt-responsive nowrap res_table" cellspacing="0" width="100%">
我不需要数据表的分页。所以我删除了它。但我需要在表中实现延迟加载。我通过在选项中添加以下内容在表中添加了滚动条
.withOption('scrollY', '48vh')
但是我无法捕捉到表格的滚动事件。如何识别滚动到达表的末尾?所以我可以从服务器获取下一组数据并附加到表中。请帮帮我。
答案 0 :(得分:1)
当您使用具有指定滚动高度的滚动时,dataTables将表的内容划分为两个不同的部分:.dataTables_scrollHead
,一个包含原始标题的表的元素,以及.dataTables_scrollBody
- 将隐藏标题(高度设置为0)的表包装到可滚动元素中。因此,您必须在onscroll
元素上收听.dataTables_scrollBody
事件:
angular.element(document).on('init.dt', function() {
document.querySelector('.dataTables_scrollBody').onscroll = function(e) {
if ((e.target.clientHeight + e.target.scrollTop) > e.target.scrollHeight-30) {
console.log('we are near the bottom')
}
}
})
带有AJAX源的Angular dataTables演示以及问题中的大部分设置 - &gt;