2016-09-05 7 views
1

私は角度のDataTableを使用していると私はこのようになりますいくつかのコードがあります。Angular DTOptionsBuilder ajax呼び出しが終了したときのコールバックはありますか?

this.dtOptions = DTOptionsBuilder.newOptions() 
    .withOption('ajax', { 
     type: 'POST', 
     contentType: 'application/json', 
     processData: false, 
     beforeSend: function(xhr, settings) { 
      ... 
     }, 
     data: function(data) { 
      ... 
     } 
    }) 
    .withDataProp('data') 
    .withOption('processing', true) 
    .withOption('serverSide', true);

すべてが正常に動作し、ページ上の表は、データときAJAX呼び出しが戻るが移入されていることを。私が今したいのは、そのAjax呼び出しが完了したときに検出することだけです。実際にコンソールに返されたデータを印刷する

success: function(data, textStatus, jqXHR, fnCallback) { 
    console.log(data); 
}

を、私はsuccessページの表をコールバックすることを追加するときに決してデータを移入していない:私はbeforeSend下にこの権利を使用しようとしました。それでは、AJAXが終了したときにコールバックを呼び出すことはできますが、ページ上のテーブルには通常どおりのデータが取り込まれますか?

答えて

2

dataTablesは内部的にajax successコールバックを使用しているため、オーバーライドすると状況が壊れます。 - >http://plnkr.co/edit/94EWyDanIawCJJgyagiy?p=preview

として

this.dtOptions = DTOptionsBuilder.newOptions() 
    .withOption('ajax', { 
    dataSrc: function(json) { 
     //success! 
     console.log(json); 
     return json 
    }, 
    type: 'POST', 
    contentType: 'application/json', 
    processData: false, 
    .... 

はデモを参照してください。ただし、DataTableのは、どのようなデータが挿入される前に、あなたの応答を操作するupportunityを与えるのDataTableの成功ハンドラ内から発射された独自のdataSrcのコールバックを紹介しますあなたはデモで見ることができる、あなたはまた、ajax completeコールバックの代替を持っている:

ajax : { 
    complete: function(jqXHR, textStatus) { 
    console.log(jqXHR.responseText) 
    } 
    .. 
} 
関連する問題