1

我使用 Angular 数据表模块。https://github.com/l-lin/angular-datatables

我尝试添加processing.dt事件,但它不起作用。

这是来自基本 api https://datatables.net/reference/event/processing的原始代码

$('#example')
    .on( 'processing.dt', function ( e, settings, processing ) {
        $('#processingIndicator').css( 'display', processing ? 'block' : 'none' );
    } )
    .dataTable();

这是我未使用的代码

.withOption('processing.dt', function( e, settings, processing){
           console.log(processing);
           $scope.loading = processing;
           }) .withOption('initComplete', function(){
                $scope.loading = false;
           })
4

1 回答 1

4

处理角度数据表时,使用 dataTables 事件没有区别。如果你有一张桌子

<table datatable dt-options="dtOptions" dt-columns="dtColumns" id="example">

然后这个工作[ http://plnkr.co/edit/hBDjR9ytD0hK6YgwrgMd?p=preview ]

$('#example').on('processing.dt', function() {
   console.log('processiong.dt');
})

这有效[ http://plnkr.co/edit/zKYyrneXl2YudNTXZkXv?p=preview ]

angular.element('#example').on('processing.dt', function() {
   console.log('processiong.dt');
})

如果你使用 adtInstance你甚至可以附加事件监听器(这里等待dtInstance被初始化,然后附加一个order.dt处理程序 [ http://plnkr.co/edit/DJa1xwzxArrWhplDY278?p=preview ]):

$scope.dtInstance = {}    

$scope.$watch('dtInstance', function() {
    if ($scope.dtInstance.DataTable) {
        $scope.dtInstance.DataTable.on('order.dt', function() {
           console.log('order.dt')
        })
    }
})  

只是为了证明没有特定的“角度数据表”方式来处理事件,它基本上是完全相同的——你只有更多的选择,因为你也有angular.element()方法并且可以处理特殊的dtInstance对象。

于 2016-02-16T09:50:47.167 回答