Я пытаюсь обновить (перерисовать) угловые данные с помощью новых dtOptions
<button type="button" class="btn btn-success m-r-sm" id="filter" (click)="filter()">
{{'apply' | translate}}
</button>
filter() {
const that = this;
this.dtOptions = {
pagingType: 'full_numbers',
pageLength: 20,
serverSide: true,
processing: true,
searching: false,
ajax: (dataTablesParameters: any, callback) => {
that.service.getExtendedCdrByCriteria(this.selectedDirection, this.selectedDisposition, this.caller, this.calledNumber, this.from, this.to, dataTablesParameters).subscribe(resp => {
that.extendedCdrs = resp.data;
console.log('ajax call');
callback({
recordsTotal: resp.recordsTotal,
recordsFiltered: resp.recordsFiltered,
data: []
});
});
},
columns: [
{ data: 'direction' },
{ data: 'datetime' },
{ data: 'callerNumber' },
{ data: 'calledNumber' },
{ data: 'timeOnHold' },
{ data: 'callTotalTime' },
{ data: 'trunkName' },
{ data: 'disposition' },
{ data: 'recordingfile' }
],
};
this.rerender();
}
rerender(): void {
try {
this.dtElement.dtInstance.then((dtInstance: DataTables.Api) => {
dtInstance.destroy();
this.dtTrigger.next();
});
} catch (err) {
console.log(err);
}
}
Когда я нажимаю на кнопку в первый раз, вызовы ajax не выполнялись, и перерисовка таблицы с теми же данными, но при повторном нажатии на кнопку this.dtOptions обновляет и повторно отображает таблицу с правильными обновленными данными. как заставить его запускать первое нажатие кнопки?