2016-09-05 37 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調用完成時檢測。我曾嘗試使用下面beforeSend這一權利:

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

這實際打印數據返回到控制檯,但是當我再補充一點success回調頁面上的表從不與數據填充。那麼如何在ajax完成時進行回調觸發,並且仍然讓頁面上的表格填充數據(如通常那樣)?

回答

2

dataTables在內部使用ajax success回調,因此如果您覆蓋該回調,則會導致分解。但是,數據表推出了自己的dataSrc回調是從數據表成功處理程序中燒給你upportunity操縱響應的任何數據插入前:

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

看到演示 - >http://plnkr.co/edit/94EWyDanIawCJJgyagiy?p=preview

由於你可以在演示中看到,你也可以在ajax complete回調中選擇:

ajax : { 
    complete: function(jqXHR, textStatus) { 
    console.log(jqXHR.responseText) 
    } 
    .. 
} 
相關問題