如何处理角度数据表中找不到的记录

时间:2015-12-10 14:44:28

标签: angularjs angular-datatables

我在我的应用中使用angular-datatables。当ajax source返回空数组时,我不知道如何处理。我希望能够显示一些消息,表明"没有找到记录"。

$scope.dtOptions = DTOptionsBuilder
.newOptions()
    .withOption('ajax', {         
     dataSrc: 'data',
     url: 'api_url',
     type: 'GET'
 })    
.withPaginationType('full_numbers');


$scope.dtColumns = [
    DTColumnBuilder.newColumn('id').withTitle('ID'),
    DTColumnBuilder.newColumn('firstName').withTitle('First name'),
    DTColumnBuilder.newColumn('lastName').withTitle('Last name').notVisible()
];

我的Ajax响应如下

{"status":false,"message":"No data were found","data":[]}

那么如何处理呢?

1 个答案:

答案 0 :(得分:1)

language结构提供所需的消息。您正在寻找的关键字称为zeroRecords。小例子:

$scope.language = {
   "zeroRecords": "No records found",
}

$scope.dtOptions = DTOptionsBuilder.newOptions()
   .withOption('ajax', {         
       dataSrc: 'data',
       url: 'api_url',
       type: 'GET'
   })    
   .withPaginationType('full_numbers') 
   .withOption('language', $scope.language)

演示 - >的 http://plnkr.co/edit/teJbmQA3wEnzvKEi63IL?p=preview

要捕获404,只需设置错误处理程序:

$scope.dtOptions = DTOptionsBuilder.newOptions()
  .withOption('ajax', {         
    dataSrc: 'data',
    url: 'api_url',
    type: 'GET',
    error : function(xhr, ajaxOptions, thrownError){
      if (xhr.status==404) {
        //no specific action needed
      }
   }  
})    

通过这种方式,您将避免丑陋的dataTables警告警告框告诉用户存在ajax错误。仍将显示zeroRecords消息。