Как заменить таблицу данных на основе нового ответа API после замены старого ответа в Angular 8 таблицах данных - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь обновить свою таблицу данных новым набором данных в приложении angular 8. На начальную загрузку получаю ответ. Но когда я делаю второй вызов (функция поиска) для нового набора данных, вместо свойств новой обновленной таблицы данных, таких как

«recordsTotal», «recordsFiltered», я получаю старые данные.

Я пробовал приведенный ниже фрагмент кода в ngOninit для начальной загрузки данных.

this.dtOptions = {
      pagingType: 'full_numbers',
      searching: true,
      ordering: true,
      paging: true,
      lengthChange: false,
      pageLength: 20,
      serverSide: true,
      autoWidth: false,
      language: {
       searchPlaceholder: "Search by Name"
      },
      order: [[0, 'desc']],
      ajax: (dataTablesParameters: any, callback) => {
        console.log('ajax options');
        this.userData = { draw: dataTablesParameters.draw, search : dataTablesParameters.search.value.trim(), orderByProperty : dataTablesParameters.columns[dataTablesParameters.order[0].column].data,  order: dataTablesParameters.order[0].dir, start: dataTablesParameters.start+1 };
        this.http
          .post<DataTablesResponse>(
            `${environment.groupContactApi}` + '/getWorkTypes/'+ lobId +'/'+ workTypeId,
            Object.assign(dataTablesParameters,this.userData), {}
          ).subscribe(resp => {
            this.userGroupData = resp.data;
            callback({
              recordsTotal: resp.recordsTotal,
              recordsFiltered: resp.recordsFiltered,
              data: []
            });
          });
      },
      columns: [{ data:'userGroupName'},{ data: 'name' }, { data: 'email' }, { data: 'contactNo' } , { data: 'role'}]
   };

Следующий фрагмент кода был использован для второй загрузки данных в качестве почтового запроса http.

let params = this.userData;
      params.length = 20;
      params.columns = [{ data:'userGroupName'},{ data: 'name' }, { data: 'email' }, { data: 'contactNo' } , { data: 'role'}];
      this.http
        .post<DataTablesResponse>(
          `${environment.groupContactApi}` + '/getWorkTypes/'+ this.lobId +'/'+ this.workTypeId, params)
        .subscribe(resp => {
          this.userGroupData = resp.data;
          if(resp.data.length == 0){
            this.showNoResults = true;
          }
        });

Пожалуйста, помогите найти решение.

Я сослался на следующую ссылку

https://l-lin.github.io/angular-datatables

...