1

アプリで使用angular-datatablesしています。ajax ソースが空の配列を返す場合の処理​​方法がわかりません。「レコードが見つかりません」というメッセージが表示されることを期待しています。

$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":[]}

では、これをどのように処理しますか?

4

1 に答える 1

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
      }
   }  
})    

これにより、ユーザーに ajax エラーが発生したことを知らせるい dataTables 警告アラート ボックスを回避できます。zeroRecordsメッセージは引き続き表示されます。

于 2015-12-14T12:37:47.027 に答える